From c060732a54d10321fb39af29d1e26dba96c3910e Mon Sep 17 00:00:00 2001 From: Ryan Maulana Date: Wed, 6 May 2026 19:21:43 +0700 Subject: [PATCH] final ta finalisasi project ta --- .history/.env_20260329222722 | 64 - .history/.env_20260409103701 | 66 - .history/.env_20260409103743 | 66 - .history/.env_20260409104307 | 66 - .history/.env_20260413212106 | 66 - .history/.env_20260413212119 | 66 - .history/.env_20260413212130 | 66 - .history/.env_20260414132645 | 66 - .history/.env_20260414132646 | 66 - .history/.env_20260414132717 | 66 - .history/.env_20260414132719 | 66 - .history/.env_20260414132721 | 66 - .history/.env_20260414140458 | 66 - .../Admin/UserController_20260401140452.php | 11 - .../Admin/UserController_20260401140553.php | 15 - .../Admin/UserController_20260401144100.php | 43 - .../Admin/UserController_20260401144444.php | 43 - .../Admin/UserController_20260401144450.php | 43 - .../Admin/UserController_20260401144526.php | 43 - .../Admin/UserController_20260401145426.php | 44 - .../Admin/UserController_20260401145427.php | 45 - .../Admin/UserController_20260401145429.php | 45 - .../Admin/UserController_20260401145431.php | 45 - .../Admin/UserController_20260401145432.php | 45 - .../Admin/UserController_20260401145436.php | 51 - .../Admin/UserController_20260401145441.php | 51 - .../AuthController_20260329205003.php | 10 - .../AuthController_20260329205017.php | 77 - .../AuthController_20260329205317.php | 83 - .../AuthController_20260329210317.php | 82 - .../AuthController_20260329210325.php | 82 - .../AuthController_20260329231035.php | 86 - .../AuthController_20260329231046.php | 86 - .../AuthController_20260329231300.php | 86 - .../AuthController_20260331091231.php | 86 - .../AuthController_20260331091824.php | 86 - .../AuthController_20260331093208.php | 86 - .../AuthController_20260331093226.php | 86 - .../AuthController_20260331093606.php | 86 - .../AuthController_20260416110900.php | 92 -- .../AuthController_20260416110906.php | 92 -- .../AuthController_20260416111106.php | 96 -- .../AuthController_20260416111109.php | 96 -- .../AuthController_20260416121633.php | 96 -- .../AuthController_20260416121635.php | 96 -- .../AuthController_20260417150500.php | 101 -- .../AuthController_20260417150503.php | 101 -- .../AuthController_20260417150514.php | 120 -- .../AuthController_20260417150516.php | 103 -- .../AuthController_20260417150520.php | 120 -- .../AuthController_20260417150522.php | 103 -- .../AuthController_20260417151054.php | 104 -- .../AuthController_20260417151055.php | 106 -- .../AuthController_20260417151107.php | 106 -- .../AuthController_20260417151110.php | 106 -- .../AuthController_20260417151119.php | 131 -- .../AuthController_20260417151123.php | 131 -- .../AuthController_20260417151125.php | 129 -- .../AuthController_20260417151138.php | 134 -- .../AuthController_20260417151140.php | 134 -- .../AuthController_20260417151149.php | 157 -- .../AuthController_20260417151153.php | 157 -- .../AuthController_20260417151202.php | 162 -- .../AuthController_20260417151205.php | 162 -- .../AuthController_20260417151213.php | 182 -- .../AuthController_20260417151218.php | 182 -- .../AuthController_20260417153713.php | 182 -- .../AuthController_20260417153721.php | 182 -- .../AuthController_20260417153734.php | 182 -- .../AuthController_20260417153736.php | 182 -- .../AuthController_20260417153737.php | 182 -- .../AuthController_20260417160012.php | 189 --- .../AuthController_20260417160016.php | 189 --- .../AuthController_20260417160457.php | 182 -- .../InformasiController_20260401135428.php | 10 - .../InformasiController_20260401135715.php | 24 - .../InformasiController_20260401141303.php | 24 - .../InformasiController_20260401141305.php | 24 - .../InformasiController_20260401141311.php | 24 - .../InformasiController_20260401141553.php | 24 - .../InformasiController_20260401141609.php | 24 - .../InformasiController_20260401142448.php | 4 - .../InformasiController_20260401142449.php | 4 - .../InformasiController_20260401142452.php | 24 - .../InformasiController_20260401142457.php | 24 - .../InformasiController_20260401142740.php | 24 - .../InformasiController_20260401142742.php | 24 - .../InformasiController_20260401142743.php | 24 - .../InformasiController_20260414203115.php | 25 - .../InformasiController_20260414203219.php | 92 -- .../InformasiController_20260414203224.php | 92 -- .../InformasiController_20260414203237.php | 92 -- .../InformasiController_20260414203242.php | 93 -- .../InformasiController_20260414203244.php | 93 -- .../InformasiController_20260414203254.php | 93 -- .../InformasiController_20260414204838.php | 103 -- .../InformasiController_20260414204844.php | 103 -- .../InformasiController_20260414205457.php | 105 -- .../InformasiController_20260414205501.php | 105 -- .../InformasiController_20260414205528.php | 105 -- .../InformasiController_20260414205530.php | 105 -- .../InformasiController_20260414205532.php | 103 -- .../InformasiController_20260414205534.php | 105 -- .../InformasiController_20260414205535.php | 105 -- .../InformasiController_20260414205537.php | 105 -- .../InformasiController_20260414205545.php | 107 -- .../InformasiController_20260414205551.php | 107 -- .../InformasiController_20260414205608.php | 120 -- .../InformasiController_20260414205612.php | 120 -- .../InformasiController_20260414205622.php | 121 -- .../InformasiController_20260414205624.php | 121 -- .../InformasiController_20260414210047.php | 127 -- .../InformasiController_20260414210049.php | 123 -- .../InformasiController_20260414210050.php | 127 -- .../InformasiController_20260414210118.php | 123 -- .../InformasiController_20260414210247.php | 136 -- .../InformasiController_20260414210253.php | 136 -- .../InformasiController_20260414210306.php | 139 -- .../InformasiController_20260414210307.php | 138 -- .../InformasiController_20260414212011.php | 139 -- .../InformasiController_20260414212013.php | 139 -- .../InformasiController_20260414212132.php | 139 -- .../InformasiController_20260414222353.php | 109 -- .../InformasiController_20260414222358.php | 109 -- .../InformasiController_20260414222454.php | 99 -- .../IuranController_20260401133728.php | 38 - .../IuranController_20260401134020.php | 39 - .../IuranController_20260401134024.php | 39 - .../IuranController_20260401134035.php | 39 - .../IuranController_20260401134038.php | 40 - .../IuranController_20260401134045.php | 40 - .../IuranController_20260401134159.php | 40 - .../IuranController_20260401214908.php | 79 - .../IuranController_20260401230445.php | 81 - .../IuranController_20260401230452.php | 81 - .../IuranController_20260401231508.php | 82 - .../IuranController_20260401231509.php | 82 - .../IuranController_20260401232213.php | 83 - .../IuranController_20260401233500.php | 86 - .../IuranController_20260401233505.php | 83 - .../IuranController_20260401233508.php | 83 - .../IuranController_20260401234230.php | 84 - .../IuranController_20260401234231.php | 84 - .../IuranController_20260401234232.php | 84 - .../IuranController_20260401234240.php | 83 - .../IuranController_20260401234745.php | 84 - .../IuranController_20260401234807.php | 84 - .../IuranController_20260401234842.php | 84 - .../IuranController_20260401234941.php | 85 - .../IuranController_20260401234944.php | 85 - .../IuranController_20260401234948.php | 86 - .../IuranController_20260401234950.php | 86 - .../IuranController_20260401235507.php | 85 - .../IuranController_20260401235508.php | 86 - .../IuranController_20260401235509.php | 85 - .../IuranController_20260401235522.php | 94 -- .../IuranController_20260408162653.php | 106 -- .../IuranController_20260408171049.php | 106 -- .../IuranController_20260408171058.php | 106 -- .../IuranController_20260408171105.php | 106 -- .../IuranController_20260408171145.php | 107 -- .../IuranController_20260408183056.php | 114 -- .../IuranController_20260408183100.php | 114 -- .../IuranController_20260408191457.php | 114 -- .../IuranController_20260408191503.php | 114 -- .../IuranController_20260409101616.php | 144 -- .../IuranController_20260409101627.php | 144 -- .../IuranController_20260409103436.php | 145 -- .../IuranController_20260409103508.php | 145 -- .../IuranController_20260409103549.php | 142 -- .../IuranController_20260409103556.php | 142 -- .../IuranController_20260416103015.php | 144 -- .../IuranController_20260416103016.php | 163 -- .../IuranController_20260416103020.php | 164 -- .../IuranController_20260416121252.php | 165 -- .../IuranController_20260416121253.php | 186 --- .../LaporanController_20260401140018.php | 10 - .../LaporanController_20260401140159.php | 18 - .../LayananController_20260329194558.php | 10 - .../LayananController_20260329194631.php | 51 - .../LayananController_20260329201010.php | 50 - .../LayananController_20260329201014.php | 50 - .../LayananController_20260410135238.php | 67 - .../LayananController_20260410135243.php | 67 - .../LayananController_20260410135345.php | 73 - .../LayananController_20260410135352.php | 73 - .../LayananController_20260410135404.php | 73 - .../LayananController_20260410135406.php | 52 - .../LayananController_20260410135415.php | 42 - .../LayananController_20260410135417.php | 52 - .../LayananController_20260410135425.php | 63 - .../LayananController_20260410135430.php | 63 - .../LayananController_20260413212930.php | 65 - .../LayananController_20260413213000.php | 89 - .../LayananController_20260413213007.php | 89 - .../LayananController_20260413234812.php | 89 - .../LayananController_20260413234815.php | 89 - .../LayananController_20260413234817.php | 89 - .../LayananController_20260413234821.php | 89 - .../LayananController_20260414134731.php | 90 - .../LayananController_20260414134735.php | 90 - .../LayananController_20260414134800.php | 89 - .../LayananController_20260414134803.php | 90 - .../LayananController_20260414134805.php | 90 - .../LayananController_20260414134807.php | 90 - .../LayananController_20260414135005.php | 89 - .../LayananController_20260414135023.php | 90 - .../LayananController_20260414135109.php | 107 -- .../LayananController_20260414135113.php | 107 -- .../LayananController_20260414135615.php | 107 -- .../LayananController_20260414135931.php | 108 -- .../LayananController_20260414135933.php | 107 -- .../LayananController_20260414135939.php | 108 -- .../LayananController_20260414135943.php | 108 -- .../LayananController_20260414140721.php | 93 -- .../LayananController_20260414140728.php | 92 -- .../LayananController_20260414140729.php | 108 -- .../LayananController_20260414140739.php | 93 -- .../LayananController_20260414141024.php | 93 -- .../LayananController_20260414142202.php | 127 -- .../LayananController_20260416103050.php | 153 -- .../LayananController_20260416103056.php | 153 -- .../LayananController_20260416163826.php | 200 --- .../LayananController_20260416163840.php | 200 --- .../LayananController_20260416163859.php | 202 --- .../LayananController_20260416163903.php | 202 --- .../LayananController_20260416163916.php | 205 --- .../LayananController_20260416163921.php | 205 --- .../ProfileController_20260401151633.php | 10 - .../ProfileController_20260401151651.php | 26 - .../ProfileController_20260401151653.php | 26 - .../ProfileController_20260401151654.php | 10 - .../ProfileController_20260401151659.php | 28 - .../ProfileController_20260401151701.php | 10 - .../ProfileController_20260401151705.php | 32 - .../ProfileController_20260401151708.php | 10 - .../ProfileController_20260401151711.php | 35 - .../ProfileController_20260401151718.php | 33 - .../ProfileController_20260401151720.php | 32 - .../ProfileController_20260401151724.php | 34 - .../ProfileController_20260401151731.php | 34 - .../ProfileController_20260401151858.php | 35 - .../ProfileController_20260401152210.php | 36 - .../ProfileController_20260401152213.php | 36 - .../ProfileController_20260401152345.php | 38 - .../ProfileController_20260401152346.php | 39 - .../ProfileController_20260401152348.php | 38 - .../ProfileController_20260401152350.php | 41 - .../ProfileController_20260401152354.php | 41 - .../ProfileController_20260401152356.php | 40 - .../ProfileController_20260401153749.php | 41 - .../ProfileController_20260401153751.php | 38 - .../ProfileController_20260401153753.php | 41 - .../ProfileController_20260401153758.php | 36 - .../ProfileController_20260401153759.php | 36 - .../ProfileController_20260401153940.php | 37 - .../ProfileController_20260401153946.php | 36 - .../ProfileController_20260401153959.php | 37 - .../ProfileController_20260401154004.php | 61 - .../ProfileController_20260401154005.php | 37 - .../ProfileController_20260401154009.php | 38 - .../ProfileController_20260401154017.php | 38 - .../ProfileController_20260401155201.php | 63 - .../ProfileController_20260401155209.php | 63 - .../ProfileController_20260401155220.php | 64 - .../UserController_20260331090519.php | 0 .../UserController_20260331090523.php | 87 - .../UserController_20260331094633.php | 90 - .../UserController_20260331094635.php | 87 - .../UserController_20260331094703.php | 87 - .../UserController_20260331094707.php | 87 - .../UserController_20260331100106.php | 87 - .../UserController_20260331111639.php | 127 -- .../UserController_20260331112731.php | 126 -- .../UserController_20260331112736.php | 126 -- .../UserController_20260331114133.php | 158 -- .../UserController_20260331114143.php | 158 -- .../UserController_20260331115635.php | 159 -- .../UserController_20260331115638.php | 159 -- .../UserController_20260331123821.php | 174 -- .../UserController_20260331123826.php | 174 -- .../UserController_20260331124234.php | 182 -- .../UserController_20260331124240.php | 182 -- .../UserController_20260331125522.php | 183 -- .../UserController_20260331125525.php | 183 -- .../UserController_20260331125528.php | 183 -- .../UserController_20260331125531.php | 183 -- .../UserController_20260331125532.php | 183 -- .../UserController_20260331133422.php | 199 --- .../UserController_20260331133431.php | 199 --- .../UserController_20260331141250.php | 200 --- .../UserController_20260331141435.php | 200 --- .../UserController_20260331153727.php | 202 --- .../UserController_20260331153735.php | 230 --- .../UserController_20260331154251.php | 230 --- .../UserController_20260331154255.php | 230 --- .../UserController_20260331154301.php | 230 --- .../UserController_20260331154302.php | 230 --- .../UserController_20260331154307.php | 230 --- .../UserController_20260331154333.php | 230 --- .../UserController_20260331154340.php | 230 --- .../UserController_20260331154349.php | 230 --- .../UserController_20260331154357.php | 230 --- .../UserController_20260331154419.php | 230 --- .../UserController_20260331155249.php | 236 --- .../UserController_20260331164755.php | 268 --- .../UserController_20260331164813.php | 268 --- .../UserController_20260331164815.php | 268 --- .../UserController_20260331164825.php | 268 --- .../UserController_20260331171727.php | 270 --- .../UserController_20260331171730.php | 309 ---- .../UserController_20260331171737.php | 309 ---- .../UserController_20260331171746.php | 309 ---- .../UserController_20260331173823.php | 270 --- .../UserController_20260331173825.php | 268 --- .../UserController_20260331175154.php | 284 ---- .../UserController_20260331175205.php | 284 ---- .../UserController_20260401105632.php | 286 ---- .../UserController_20260401105634.php | 308 ---- .../UserController_20260401105642.php | 308 ---- .../UserController_20260401152452.php | 308 ---- .../UserController_20260401152502.php | 308 ---- .../UserController_20260401152917.php | 308 ---- .../UserController_20260401153805.php | 308 ---- .../UserController_20260401153807.php | 308 ---- .../UserController_20260401153809.php | 308 ---- .../UserController_20260408163211.php | 308 ---- .../UserController_20260408163226.php | 308 ---- .../UserController_20260408194012.php | 316 ---- .../UserController_20260408194015.php | 308 ---- .../UserController_20260408194020.php | 317 ---- .../UserController_20260408194025.php | 317 ---- .../UserController_20260408213245.php | 319 ---- .../UserController_20260408213249.php | 319 ---- .../UserController_20260408213750.php | 319 ---- .../UserController_20260408213754.php | 319 ---- .../UserController_20260408213800.php | 320 ---- .../UserController_20260408213803.php | 320 ---- .../UserController_20260409092121.php | 323 ---- .../UserController_20260409092125.php | 323 ---- .../UserController_20260409105935.php | 333 ---- .../UserController_20260409105939.php | 325 ---- .../UserController_20260409110003.php | 334 ---- .../UserController_20260409110009.php | 334 ---- .../UserController_20260409110845.php | 335 ---- .../UserController_20260409110852.php | 334 ---- .../UserController_20260409110855.php | 335 ---- .../UserController_20260409112716.php | 328 ---- .../UserController_20260409112723.php | 328 ---- .../UserController_20260409112936.php | 328 ---- .../UserController_20260409113306.php | 328 ---- .../UserController_20260409114422.php | 333 ---- .../UserController_20260409114426.php | 333 ---- .../UserController_20260413234959.php | 336 ---- .../UserController_20260413235343.php | 336 ---- .../UserController_20260413235436.php | 340 ---- .../UserController_20260413235557.php | 344 ---- .../UserController_20260414000512.php | 342 ---- .../UserController_20260414000514.php | 344 ---- .../UserController_20260414000526.php | 340 ---- .../UserController_20260414000531.php | 338 ---- .../UserController_20260414000535.php | 344 ---- .../UserController_20260414000546.php | 344 ---- .../UserController_20260414001716.php | 328 ---- .../UserController_20260414001722.php | 344 ---- .../UserController_20260414001732.php | 328 ---- .../UserController_20260414001747.php | 328 ---- .../UserController_20260414001853.php | 344 ---- .../UserController_20260414002126.php | 357 ---- .../UserController_20260414002128.php | 357 ---- .../UserController_20260414002228.php | 357 ---- .../UserController_20260414002234.php | 358 ---- .../UserController_20260414002250.php | 358 ---- .../UserController_20260414002556.php | 358 ---- .../UserController_20260414002616.php | 348 ---- .../UserController_20260414002831.php | 348 ---- .../UserController_20260414003138.php | 345 ---- .../UserController_20260414003411.php | 335 ---- .../UserController_20260414003422.php | 335 ---- .../UserController_20260414003707.php | 335 ---- .../UserController_20260414003721.php | 336 ---- .../UserController_20260414003722.php | 336 ---- .../UserController_20260414144603.php | 338 ---- .../UserController_20260414144629.php | 347 ---- .../UserController_20260414144635.php | 347 ---- .../UserController_20260414144654.php | 347 ---- .../UserController_20260414145213.php | 347 ---- .../UserController_20260414145215.php | 347 ---- .../UserController_20260414145407.php | 347 ---- .../UserController_20260414145409.php | 347 ---- .../UserController_20260414145411.php | 347 ---- .../UserController_20260414145420.php | 347 ---- .../UserController_20260414145424.php | 347 ---- .../UserController_20260414214139.php | 352 ---- .../UserController_20260414214143.php | 352 ---- .../UserController_20260414214200.php | 352 ---- .../UserController_20260414222428.php | 360 ---- .../UserController_20260414222433.php | 360 ---- .../UserController_20260414222438.php | 361 ---- .../UserController_20260414222439.php | 361 ---- .../UserController_20260416184440.php | 367 ---- .../UserController_20260416185230.php | 367 ---- .../UserController_20260416185231.php | 367 ---- .../UserController_20260416185235.php | 367 ---- .../UserController_20260416185237.php | 367 ---- .../UserController_20260416190231.php | 363 ---- .../UserController_20260416190303.php | 368 ----- .../UserController_20260416190314.php | 363 ---- .../UserController_20260416190328.php | 363 ---- .../UserController_20260416190344.php | 368 ----- .../UserController_20260416190402.php | 367 ---- .../UserController_20260416190405.php | 368 ----- .../UserController_20260416190649.php | 363 ---- .../UserController_20260416190652.php | 361 ---- .../UserController_20260416190656.php | 365 ---- .../UserController_20260416190701.php | 365 ---- .../UserController_20260416193006.php | 371 ----- .../UserController_20260416193010.php | 371 ----- .../UserController_20260416193013.php | 371 ----- .../UserController_20260416193034.php | 371 ----- .../UserIuranController_20260408161026.php | 10 - .../UserIuranController_20260408161049.php | 10 - .../UserIuranController_20260408161050.php | 52 - .../UserIuranController_20260408161052.php | 52 - .../UserIuranController_20260408161054.php | 10 - .../UserIuranController_20260408161059.php | 54 - .../UserIuranController_20260408162009.php | 60 - .../UserIuranController_20260408162015.php | 60 - .../UserIuranController_20260408162608.php | 72 - .../UserIuranController_20260408162613.php | 72 - .../UserIuranController_20260408162638.php | 62 - .../UserIuranController_20260408162640.php | 60 - .../UserIuranController_20260408165949.php | 57 - .../UserIuranController_20260408165953.php | 57 - .../UserIuranController_20260408171743.php | 53 - .../UserIuranController_20260408171745.php | 57 - .../UserIuranController_20260408171747.php | 53 - .../UserIuranController_20260408172816.php | 60 - .../UserIuranController_20260408172821.php | 60 - .../UserIuranController_20260408172836.php | 63 - .../UserIuranController_20260408172839.php | 63 - .../UserIuranController_20260408183019.php | 73 - .../UserIuranController_20260408183020.php | 65 - .../UserIuranController_20260408183023.php | 78 - .../UserIuranController_20260408183029.php | 78 - .../UserIuranController_20260408190403.php | 62 - .../UserIuranController_20260408190404.php | 78 - .../UserIuranController_20260408190410.php | 63 - .../UserIuranController_20260408190413.php | 78 - .../UserIuranController_20260408190436.php | 80 - .../UserIuranController_20260408190446.php | 80 - .../UserIuranController_20260409083211.php | 94 -- .../UserIuranController_20260409083218.php | 94 -- .../UserIuranController_20260409083521.php | 94 -- .../UserIuranController_20260409083526.php | 94 -- .../UserIuranController_20260409090337.php | 94 -- .../UserIuranController_20260409090340.php | 94 -- .../UserIuranController_20260409090343.php | 94 -- .../UserIuranController_20260409090513.php | 89 - .../UserIuranController_20260409090516.php | 89 - .../UserIuranController_20260409091203.php | 94 -- .../UserIuranController_20260409091210.php | 94 -- .../UserIuranController_20260416200440.php | 103 -- .../UserIuranController_20260416200445.php | 103 -- .../UserIuranController_20260416200450.php | 103 -- .../UserIuranController_20260416200453.php | 103 -- .../UserLayananController_20260410133357.php | 10 - .../UserLayananController_20260410133416.php | 54 - .../UserLayananController_20260410135210.php | 57 - .../UserLayananController_20260410140954.php | 64 - .../UserLayananController_20260410141044.php | 64 - .../UserLayananController_20260410141046.php | 64 - .../UserLayananController_20260414004528.php | 64 - .../UserLayananController_20260414004549.php | 60 - .../UserLayananController_20260414004552.php | 60 - .../UserLayananController_20260414143748.php | 73 - .../UserLayananController_20260414143756.php | 73 - .../UserLayananController_20260414143800.php | 73 - .../UserLayananController_20260414143801.php | 73 - .../UserLayananController_20260414143806.php | 73 - .../UserLayananController_20260414143808.php | 73 - .../UserLayananController_20260414143811.php | 62 - .../UserLayananController_20260414143812.php | 73 - .../UserLayananController_20260414143819.php | 73 - .../UserLayananController_20260414143822.php | 73 - .../UserLayananController_20260414143917.php | 73 - .../UserLayananController_20260414143924.php | 73 - .../UserLayananController_20260414143940.php | 73 - .../UserLayananController_20260414143943.php | 73 - .../UserLayananController_20260414144343.php | 74 - .../UserLayananController_20260414144349.php | 74 - .../UserLayananController_20260414144712.php | 71 - .../UserLayananController_20260414144716.php | 71 - .../UserLayananController_20260414145445.php | 74 - .../UserLayananController_20260414145448.php | 74 - .../UserLayananController_20260416194233.php | 80 - .../dashboardController_20250815103235.php | 13 - .../dashboardController_20250819085145.php | 13 - .../dashboardController_20250819085148.php | 13 - .../dashboardController_20250819085153.php | 14 - .../dashboardController_20250819085155.php | 13 - .../dashboardController_20250819085402.php | 13 - .../dashboardController_20250819085405.php | 13 - .../dashboardController_20250819091555.php | 13 - .../dashboardController_20250819091558.php | 13 - .../dashboardController_20250819091602.php | 13 - .../dashboardController_20250819091604.php | 13 - .../dashboardController_20250819152558.php | 13 - .../dashboardController_20250819152622.php | 14 - .../dashboardController_20250819152629.php | 14 - .../dashboardController_20250819152632.php | 14 - .../dashboardController_20250819152641.php | 14 - .../dashboardController_20250819152643.php | 15 - .../dashboardController_20250819152648.php | 14 - .../dashboardController_20250819152716.php | 13 - .../dashboardController_20250819152931.php | 13 - .../dashboardController_20250819153031.php | 14 - .../dashboardController_20250819153033.php | 14 - .../dashboardController_20250819153035.php | 14 - .../dashboardController_20250819153039.php | 14 - .../dashboardController_20250819153053.php | 14 - .../dashboardController_20250819153101.php | 14 - .../dashboardController_20250819153102.php | 14 - .../dashboardController_20250819153103.php | 14 - .../dashboardController_20250819153104.php | 14 - .../dashboardController_20250819153107.php | 14 - .../dashboardController_20250819153116.php | 14 - .../dashboardController_20250819153117.php | 14 - .../dashboardController_20250819153146.php | 13 - .../dashboardController_20250819153148.php | 13 - .../dashboardController_20250819153154.php | 13 - .../dashboardController_20250819153351.php | 13 - .../homeController_20250815103157.php | 10 - .../homeController_20250815103230.php | 10 - .../homeController_20250815103232.php | 10 - .../homeController_20250815103233.php | 13 - .../homeController_20250815103236.php | 13 - .../homeController_20250819085839.php | 13 - .../homeController_20250819085841.php | 13 - .../penghuniController_20260330202740.php | 130 -- .../penghuniController_20260330202745.php | 130 -- .../penghuniController_20260330202750.php | 130 -- .../penghuniController_20260330202754.php | 99 -- .../penghuniController_20260330202800.php | 130 -- .../penghuniController_20260330203840.php | 130 -- .../penghuniController_20260330203842.php | 99 -- .../penghuniController_20260330205309.php | 114 -- .../penghuniController_20260330210826.php | 118 -- .../penghuniController_20260330210828.php | 114 -- .../penghuniController_20260330210834.php | 115 -- .../penghuniController_20260330211101.php | 162 -- .../penghuniController_20260330211102.php | 115 -- .../penghuniController_20260330211104.php | 162 -- .../penghuniController_20260330211804.php | 162 -- .../penghuniController_20260330211807.php | 162 -- .../penghuniController_20260330211838.php | 163 -- .../penghuniController_20260330211840.php | 162 -- .../penghuniController_20260330211846.php | 160 -- .../penghuniController_20260330211850.php | 160 -- .../penghuniController_20260330212128.php | 160 -- .../penghuniController_20260330212132.php | 160 -- .../penghuniController_20260330212203.php | 160 -- .../penghuniController_20260330212208.php | 160 -- .../penghuniController_20260330212459.php | 160 -- .../penghuniController_20260330212501.php | 159 -- .../penghuniController_20260330221935.php | 161 -- .../penghuniController_20260330221937.php | 162 -- .../penghuniController_20260330221939.php | 173 -- .../penghuniController_20260330221954.php | 173 -- .../penghuniController_20260330221957.php | 174 -- .../penghuniController_20260330221959.php | 173 -- .../penghuniController_20260330222002.php | 173 -- .../penghuniController_20260330222004.php | 173 -- .../penghuniController_20260330235300.php | 119 -- .../penghuniController_20260330235315.php | 119 -- .../penghuniController_20260330235318.php | 173 -- .../penghuniController_20260330235328.php | 119 -- .../penghuniController_20260330235448.php | 173 -- .../penghuniController_20260331001053.php | 149 -- .../penghuniController_20260331001056.php | 173 -- .../penghuniController_20260331001059.php | 149 -- .../penghuniController_20260331001319.php | 169 -- .../penghuniController_20260331002728.php | 209 --- .../penghuniController_20260331002740.php | 209 --- .../penghuniController_20260331003451.php | 209 --- .../penghuniController_20260331003502.php | 209 --- .../penghuniController_20260331003508.php | 209 --- .../penghuniController_20260331003519.php | 209 --- .../penghuniController_20260331003721.php | 209 --- .../penghuniController_20260331003809.php | 219 --- .../penghuniController_20260331005148.php | 222 --- .../penghuniController_20260331005151.php | 222 --- .../penghuniController_20260331005540.php | 223 --- .../penghuniController_20260331005552.php | 222 --- .../penghuniController_20260331005605.php | 223 --- .../penghuniController_20260331005611.php | 223 --- .../penghuniController_20260331005732.php | 222 --- .../penghuniController_20260331005839.php | 231 --- .../penghuniController_20260331005841.php | 222 --- .../penghuniController_20260331005850.php | 218 --- .../penghuniController_20260331005857.php | 217 --- .../penghuniController_20260331005900.php | 217 --- .../penghuniController_20260331010337.php | 129 -- .../penghuniController_20260331010355.php | 217 --- .../penghuniController_20260331012509.php | 217 --- .../penghuniController_20260331012512.php | 218 --- .../penghuniController_20260331012514.php | 217 --- .../penghuniController_20260331012516.php | 217 --- .../penghuniController_20260331012531.php | 222 --- .../penghuniController_20260331012533.php | 222 --- .../penghuniController_20260331012536.php | 219 --- .../penghuniController_20260331012552.php | 218 --- .../penghuniController_20260331012554.php | 218 --- .../penghuniController_20260331012556.php | 222 --- .../penghuniController_20260331012613.php | 219 --- .../penghuniController_20260331012648.php | 214 --- .../penghuniController_20260331012724.php | 214 --- .../penghuniController_20260331012727.php | 214 --- .../penghuniController_20260331012829.php | 211 --- .../penghuniController_20260331012830.php | 214 --- .../penghuniController_20260331012834.php | 214 --- .../penghuniController_20260331012839.php | 214 --- .../penghuniController_20260331012857.php | 214 --- .../penghuniController_20260331012903.php | 214 --- .../penghuniController_20260331012910.php | 214 --- .../penghuniController_20260331144622.php | 244 --- .../penghuniController_20260331173833.php | 260 --- .../penghuniController_20260331174019.php | 244 --- .../penghuniController_20260331174021.php | 260 --- .../penghuniController_20260331174030.php | 244 --- .../penghuniController_20260331174032.php | 260 --- .../penghuniController_20260331181212.php | 261 --- .../penghuniController_20260331184213.php | 261 --- .../penghuniController_20260331235803.php | 260 --- .../penghuniController_20260331235810.php | 260 --- .../penghuniController_20260331235812.php | 261 --- .../penghuniController_20260331235822.php | 259 --- .../penghuniController_20260331235830.php | 259 --- .../penghuniController_20260401002726.php | 260 --- .../penghuniController_20260401002736.php | 260 --- .../penghuniController_20260401002820.php | 260 --- .../penghuniController_20260401002824.php | 260 --- .../penghuniController_20260401103643.php | 274 --- .../penghuniController_20260413233400.php | 276 ---- .../penghuniController_20260413233401.php | 276 ---- .../penghuniController_20260413233409.php | 276 ---- .../penghuniController_20260413233410.php | 276 ---- .../penghuniController_20260413233456.php | 276 ---- .../penghuniController_20260413233513.php | 276 ---- .../penghuniController_20260413233730.php | 276 ---- .../penghuniController_20260413233732.php | 276 ---- .../penghuniController_20260413233737.php | 276 ---- .../penghuniController_20260413233936.php | 277 ---- .../penghuniController_20260413233938.php | 277 ---- .../penghuniController_20260413233946.php | 277 ---- .../penghuniController_20260413233948.php | 277 ---- .../penghuniController_20260413234246.php | 274 --- .../penghuniController_20260413234419.php | 277 ---- .../penghuniController_20260413234425.php | 277 ---- .../penghuniController_20260413234428.php | 277 ---- .../penghuniController_20260413234430.php | 277 ---- .../penghuniController_20260413234437.php | 277 ---- .../penghuniController_20260413234441.php | 277 ---- .../penghuniController_20260413234443.php | 277 ---- .../penghuniController_20260413234448.php | 274 --- .../penghuniController_20260413234449.php | 277 ---- .../penghuniController_20260413234618.php | 277 ---- .../penghuniController_20260413234628.php | 277 ---- .../penghuniController_20260413234629.php | 277 ---- .../penghuniController_20260413234633.php | 277 ---- .../penghuniController_20260413234635.php | 277 ---- .../penghuniController_20260413234724.php | 277 ---- .../penghuniController_20260413234736.php | 277 ---- .../penghuniController_20260413234826.php | 274 --- .../penghuniController_20260416165948.php | 281 ---- .../penghuniController_20260416165951.php | 281 ---- .../penghuniController_20260416171338.php | 286 ---- .../penghuniController_20260416171344.php | 286 ---- .../penghuniController_20260416171525.php | 281 ---- .../penghuniController_20260416171647.php | 286 ---- .../penghuniController_20260416171648.php | 286 ---- .../penghuniController_20260416183725.php | 284 ---- .../penghuniController_20260416192837.php | 285 ---- .../penghuniController_20260416192913.php | 290 ---- .../penghuniController_20260416192917.php | 290 ---- .../penghuniController_20260416200903.php | 297 ---- .../penghuniController_20260416200906.php | 292 ---- .../CekStatusPenghuni_20260416194434.php | 20 - .../CekStatusPenghuni_20260416194450.php | 27 - .../CekStatusPenghuni_20260416194516.php | 27 - .../CekStatusPenghuni_20260416194518.php | 27 - .../CekStatusPenghuni_20260416194524.php | 27 - .../CekStatusPenghuni_20260416195251.php | 27 - .../CekStatusPenghuni_20260416195254.php | 27 - .../CekStatusPenghuni_20260416195301.php | 27 - .../CekStatusPenghuni_20260416195317.php | 27 - .../CekStatusPenghuni_20260416195322.php | 27 - .../CekStatusPenghuni_20260416195334.php | 27 - .../CekStatusPenghuni_20260416195338.php | 27 - .../CekStatusPenghuni_20260416195346.php | 28 - .../RoleMiddleware_20260331095109.php | 20 - .../RoleMiddleware_20260331095139.php | 23 - .../RoleMiddleware_20260331095505.php | 23 - .../RoleMiddleware_20260331095510.php | 23 - .../RoleMiddleware_20260416102830.php | 23 - .../RoleMiddleware_20260416102832.php | 23 - .../RoleMiddleware_20260416102839.php | 23 - .../RoleMiddleware_20260416102841.php | 23 - .../RoleMiddleware_20260416102844.php | 23 - .../Mail/NotifPengaduan_20260413212150.php | 53 - .../Mail/NotifPengaduan_20260413212238.php | 66 - .../Mail/NotifPengaduan_20260413212245.php | 55 - .../Mail/NotifPengaduan_20260413212247.php | 53 - .../Mail/NotifPengaduan_20260413212259.php | 53 - .../Mail/NotifPengaduan_20260413212303.php | 53 - .../Mail/NotifPengaduan_20260413212312.php | 53 - .../Mail/NotifPengaduan_20260413212334.php | 53 - .../Mail/NotifPengaduan_20260413212336.php | 53 - .../Mail/NotifPengaduan_20260413212344.php | 59 - .../Mail/NotifPengaduan_20260413212349.php | 59 - .../Mail/NotifPengaduan_20260413212454.php | 61 - .../Mail/NotifPengaduan_20260413212457.php | 61 - .../Mail/NotifPengaduan_20260413212501.php | 61 - .../Mail/NotifPengaduan_20260413212711.php | 62 - .../Mail/NotifPengaduan_20260413212712.php | 63 - .../Mail/NotifPengaduan_20260413212720.php | 62 - .../Mail/NotifPengaduan_20260413213026.php | 21 - .history/app/Mail/OtpMail_20260417150839.php | 53 - .history/app/Mail/OtpMail_20260417150917.php | 61 - .history/app/Mail/OtpMail_20260417150926.php | 61 - .history/app/Mail/OtpMail_20260417153454.php | 61 - .history/app/Mail/OtpMail_20260417153457.php | 61 - .history/app/Mail/OtpMail_20260417153459.php | 61 - .history/app/Mail/OtpMail_20260417153502.php | 61 - .history/app/Mail/OtpMail_20260417154104.php | 64 - .history/app/Mail/OtpMail_20260417154107.php | 64 - .history/app/Mail/OtpMail_20260417154110.php | 64 - .history/app/Mail/OtpMail_20260417155118.php | 61 - .history/app/Mail/OtpMail_20260417161416.php | 239 --- .history/app/Mail/OtpMail_20260417161418.php | 61 - .history/app/Mail/OtpMail_20260417161421.php | 239 --- .history/app/Mail/OtpMail_20260417161422.php | 61 - .history/app/Mail/OtpMail_20260417161427.php | 64 - .history/app/Mail/OtpMail_20260417161431.php | 64 - .history/app/Mail/OtpMail_20260417161708.php | 64 - .history/app/Mail/OtpMail_20260417161710.php | 64 - .history/app/Mail/OtpMail_20260417161717.php | 64 - .history/app/Mail/OtpMail_20260417161718.php | 64 - .history/app/Mail/OtpMail_20260417161921.php | 67 - .history/app/Mail/OtpMail_20260417161933.php | 67 - .history/app/Mail/OtpMail_20260417161944.php | 67 - .history/app/Mail/OtpMail_20260417161947.php | 67 - .history/app/Mail/OtpMail_20260417162154.php | 31 - .../app/Models/Informasi_20260414202408.php | 10 - .../app/Models/Informasi_20260414203037.php | 10 - .../app/Models/Informasi_20260414203038.php | 21 - .../app/Models/Informasi_20260414203045.php | 21 - .history/app/Models/Iuran_20260401215337.php | 34 - .history/app/Models/Iuran_20260401234041.php | 35 - .history/app/Models/Iuran_20260401234046.php | 36 - .../app/Models/Layanan_20260329194735.php | 10 - .../app/Models/Layanan_20260329194926.php | 31 - .../app/Models/Layanan_20260329200838.php | 30 - .../app/Models/Layanan_20260329200841.php | 30 - .../app/Models/Layanan_20260410135155.php | 30 - .../app/Models/Layanan_20260410135158.php | 30 - .../app/Models/Layanan_20260410140848.php | 31 - .../app/Models/Layanan_20260410140849.php | 31 - .../app/Models/Penghuni_20260331014002.php | 34 - .../app/Models/Penghuni_20260401002232.php | 34 - .../app/Models/Penghuni_20260401002236.php | 34 - .../app/Models/Penghuni_20260410135132.php | 44 - .../app/Models/Penghuni_20260410135137.php | 44 - .../app/Models/Penghuni_20260416182746.php | 45 - .history/app/Models/Rumah_20260330205523.php | 0 .history/app/Models/Rumah_20260330205559.php | 31 - .history/app/Models/Rumah_20260330210440.php | 32 - .history/app/Models/Rumah_20260331084244.php | 33 - .history/app/Models/Rumah_20260331084246.php | 33 - .history/app/Models/Rumah_20260331084612.php | 33 - .history/app/Models/Rumah_20260331165556.php | 34 - .history/app/Models/Rumah_20260331165559.php | 34 - .history/app/Models/Rumah_20260331165601.php | 34 - .history/app/Models/Rumah_20260331165602.php | 34 - .history/app/Models/Rumah_20260401001819.php | 39 - .history/app/Models/Rumah_20260401001827.php | 36 - .history/app/Models/Rumah_20260401002026.php | 36 - .history/app/Models/Rumah_20260401002032.php | 36 - .history/app/Models/User_20240312205242.php | 47 - .history/app/Models/User_20260329231157.php | 47 - .history/app/Models/User_20260329231159.php | 47 - .history/app/Models/User_20260329231213.php | 48 - .history/app/Models/User_20260401101643.php | 49 - .history/app/Models/User_20260401101647.php | 49 - .history/app/Models/User_20260401155038.php | 50 - .history/app/Models/User_20260409090426.php | 55 - .history/app/Models/User_20260409090429.php | 55 - .history/app/Models/User_20260410135042.php | 55 - .history/app/Models/User_20260410135045.php | 55 - .history/bootstrap/app_20240312205242.php | 18 - .history/bootstrap/app_20260331095413.php | 40 - .history/bootstrap/app_20260331095416.php | 18 - .history/bootstrap/app_20260331095417.php | 20 - .history/bootstrap/app_20260331095421.php | 20 - .history/config/app_20240312205242.php | 126 -- .history/config/app_20260402000401.php | 126 -- .history/config/app_20260402000456.php | 126 -- .history/config/app_20260402000458.php | 126 -- .history/config/app_20260402000751.php | 126 -- .history/config/app_20260402000759.php | 126 -- .history/config/app_20260402000802.php | 126 -- .history/config/app_20260402000808.php | 126 -- ...0000_create_users_table_20240312205242.php | 49 - ...0000_create_users_table_20260329221729.php | 15 - ...0000_create_users_table_20260329221732.php | 49 - ...0000_create_users_table_20260329222212.php | 32 - ...0000_create_users_table_20260401223543.php | 31 - ...0000_create_users_table_20260417153219.php | 33 - ...0000_create_users_table_20260417153221.php | 35 - ...0000_create_users_table_20260417153226.php | 35 - ...0000_create_users_table_20260417153230.php | 35 - ...0000_create_rumah_table_20260330214539.php | 34 - ...0000_create_rumah_table_20260401222355.php | 35 - ...2_create_penghuni_table_20260330213916.php | 22 - ...2_create_penghuni_table_20260330213918.php | 22 - ...2_create_penghuni_table_20260330213919.php | 22 - ...2_create_penghuni_table_20260330213921.php | 22 - ...2_create_penghuni_table_20260330213923.php | 38 - ...2_create_penghuni_table_20260330213928.php | 60 - ...2_create_penghuni_table_20260330214241.php | 57 - ...2_create_penghuni_table_20260330214552.php | 33 - ...2_create_penghuni_table_20260330214600.php | 33 - ...2_create_penghuni_table_20260330214602.php | 32 - ...2_create_penghuni_table_20260330214621.php | 33 - ...2_create_penghuni_table_20260330214623.php | 57 - ...2_create_penghuni_table_20260330214651.php | 44 - ...2_create_penghuni_table_20260330214712.php | 57 - ...2_create_penghuni_table_20260330214714.php | 44 - ...2_create_penghuni_table_20260330214832.php | 43 - ...2_create_penghuni_table_20260330214918.php | 42 - ...3910_create_iuran_table_20260401220534.php | 33 - ...3910_create_iuran_table_20260401220541.php | 32 - ...3910_create_iuran_table_20260401220712.php | 36 - ...3910_create_iuran_table_20260401225104.php | 37 - ...3910_create_iuran_table_20260401225105.php | 38 - ...3910_create_iuran_table_20260401225109.php | 38 - ...3910_create_iuran_table_20260401232356.php | 38 - ...3910_create_iuran_table_20260401232358.php | 38 - ...3910_create_iuran_table_20260401232400.php | 38 - ...09_create_layanan_table_20260329195208.php | 27 - ...09_create_layanan_table_20260329195447.php | 38 - ...09_create_layanan_table_20260329195450.php | 38 - ...09_create_layanan_table_20260329195453.php | 27 - ...09_create_layanan_table_20260329195458.php | 41 - ...09_create_layanan_table_20260329195502.php | 40 - ...09_create_layanan_table_20260329195932.php | 40 - ...09_create_layanan_table_20260329195936.php | 40 - ...09_create_layanan_table_20260329195939.php | 39 - ...09_create_layanan_table_20260329195941.php | 40 - ...09_create_layanan_table_20260329200753.php | 18 - ...09_create_layanan_table_20260329200755.php | 18 - ...09_create_layanan_table_20260329200756.php | 40 - ...09_create_layanan_table_20260329200802.php | 20 - ...09_create_layanan_table_20260329200805.php | 40 - ...09_create_layanan_table_20260329200814.php | 40 - ...09_create_layanan_table_20260329200819.php | 35 - ...09_create_layanan_table_20260329200823.php | 35 - ...09_create_layanan_table_20260410140812.php | 37 - ...ah_id_to_penghuni_table_20260330203252.php | 28 - ...ah_id_to_penghuni_table_20260330203321.php | 17 - ...ah_id_to_penghuni_table_20260330203322.php | 17 - ...ah_id_to_penghuni_table_20260330203324.php | 28 - ...ah_id_to_penghuni_table_20260330203333.php | 29 - ...ah_id_to_penghuni_table_20260330210042.php | 28 - ...ah_id_to_penghuni_table_20260330210115.php | 29 - ...ah_id_to_penghuni_table_20260330213021.php | 29 - ...ah_id_to_penghuni_table_20260330213024.php | 29 - ...ah_id_to_penghuni_table_20260330213031.php | 29 - ...ah_id_to_penghuni_table_20260330213327.php | 29 - ...ah_id_to_penghuni_table_20260330213334.php | 24 - ...ah_id_to_penghuni_table_20260330213336.php | 24 - ...ah_id_to_penghuni_table_20260330213338.php | 29 - ...ah_id_to_penghuni_table_20260330213346.php | 26 - ...ah_id_to_penghuni_table_20260330213631.php | 26 - ...2700_create_rumah_table_20260330212659.php | 27 - ...2700_create_rumah_table_20260330212715.php | 34 - ...2700_create_rumah_table_20260330213732.php | 60 - ...2700_create_rumah_table_20260330213904.php | 60 - ...2700_create_rumah_table_20260330213906.php | 60 - ...2700_create_rumah_table_20260330213908.php | 34 - ...2700_create_rumah_table_20260330214540.php | 34 - ...dd_denah_to_rumah_table_20260331084145.php | 28 - ...dd_denah_to_rumah_table_20260331084215.php | 25 - ...dd_denah_to_rumah_table_20260331084218.php | 25 - ...dd_photo_to_users_table_20260401154938.php | 28 - ...dd_photo_to_users_table_20260401155001.php | 28 - ...dd_photo_to_users_table_20260401155005.php | 28 - ...dd_photo_to_users_table_20260401155007.php | 28 - ...dd_photo_to_users_table_20260401155009.php | 28 - ..._create_informasi_table_20260414202355.php | 27 - ..._create_informasi_table_20260414202835.php | 41 - ..._create_informasi_table_20260414202836.php | 41 - ..._create_informasi_table_20260414202841.php | 41 - .../informasi/create.blade_20260414203935.php | 0 .../informasi/create.blade_20260414204046.php | 25 - .../informasi/create.blade_20260414204055.php | 36 - .../informasi/edit.blade_20260414203946.php | 0 .../informasi/edit.blade_20260414204006.php | 36 - .../informasi/edit.blade_20260414204033.php | 38 - .../informasi/edit.blade_20260414204105.php | 38 - .../informasi/index.blade_20260401135926.php | 31 - .../informasi/index.blade_20260414203919.php | 25 - .../informasi/index.blade_20260414203923.php | 31 - .../informasi/index.blade_20260414203927.php | 68 - .../infromasi/index.blade_20260401135923.php | 0 .../infromasi/index.blade_20260401135927.php | 31 - .../iuran/create.blade_20260401230224.php | 78 - .../iuran/create.blade_20260401235837.php | 78 - .../iuran/create.blade_20260401235838.php | 78 - .../admin/iuran/edit.blade_20260401235410.php | 80 - .../admin/iuran/edit.blade_20260401235855.php | 80 - .../iuran/index.blade_20260401230616.php | 100 -- .../iuran/index.blade_20260401230620.php | 100 -- .../iuran/index.blade_20260401230706.php | 102 -- .../iuran/index.blade_20260401230711.php | 102 -- .../iuran/index.blade_20260401230714.php | 102 -- .../iuran/index.blade_20260401230730.php | 102 -- .../iuran/index.blade_20260401230731.php | 102 -- .../iuran/index.blade_20260401230736.php | 101 -- .../iuran/index.blade_20260401230738.php | 102 -- .../iuran/index.blade_20260401230741.php | 102 -- .../iuran/index.blade_20260401230742.php | 102 -- .../iuran/index.blade_20260401231003.php | 102 -- .../iuran/index.blade_20260401232546.php | 102 -- .../iuran/index.blade_20260401232550.php | 102 -- .../iuran/index.blade_20260401232552.php | 102 -- .../iuran/index.blade_20260401232622.php | 102 -- .../iuran/index.blade_20260401233123.php | 102 -- .../iuran/index.blade_20260401233434.php | 102 -- .../iuran/index.blade_20260401233438.php | 102 -- .../iuran/index.blade_20260402000221.php | 107 -- .../iuran/index.blade_20260402000227.php | 107 -- .../iuran/index.blade_20260402001001.php | 107 -- .../iuran/index.blade_20260402001051.php | 107 -- .../iuran/index.blade_20260402001114.php | 107 -- .../iuran/index.blade_20260402001128.php | 107 -- .../iuran/index.blade_20260408171342.php | 114 -- .../iuran/index.blade_20260408171347.php | 114 -- .../iuran/index.blade_20260408171352.php | 107 -- .../iuran/index.blade_20260408171354.php | 108 -- .../iuran/index.blade_20260408171356.php | 114 -- .../iuran/index.blade_20260408171402.php | 114 -- .../iuran/index.blade_20260408172245.php | 115 -- .../iuran/index.blade_20260408172252.php | 115 -- .../iuran/index.blade_20260408172340.php | 141 -- .../iuran/index.blade_20260408172353.php | 141 -- .../iuran/index.blade_20260408183206.php | 185 --- .../iuran/index.blade_20260408183501.php | 185 --- .../iuran/index.blade_20260408183503.php | 185 --- .../iuran/index.blade_20260408183507.php | 185 --- .../iuran/index.blade_20260408184401.php | 252 --- .../iuran/index.blade_20260408184617.php | 252 --- .../iuran/index.blade_20260408185037.php | 253 --- .../iuran/index.blade_20260408185719.php | 253 --- .../iuran/index.blade_20260408185723.php | 253 --- .../iuran/index.blade_20260408190722.php | 253 --- .../iuran/index.blade_20260408190726.php | 253 --- .../iuran/index.blade_20260408190804.php | 251 --- .../iuran/index.blade_20260408215115.php | 255 --- .../iuran/index.blade_20260408215130.php | 251 --- .../iuran/index.blade_20260409101700.php | 257 --- .../iuran/index.blade_20260409102024.php | 253 --- .../iuran/index.blade_20260409102038.php | 259 --- .../iuran/index.blade_20260416103437.php | 267 --- .../iuran/index.blade_20260416103522.php | 274 --- .../iuran/index.blade_20260416103523.php | 274 --- .../iuran/index.blade_20260416103524.php | 274 --- .../iuran/index.blade_20260416103525.php | 274 --- .../iuran/index.blade_20260416103526.php | 274 --- .../iuran/index.blade_20260416103534.php | 269 --- .../iuran/index.blade_20260416103535.php | 274 --- .../iuran/index.blade_20260416103604.php | 261 --- .../iuran/index.blade_20260416103631.php | 266 --- .../iuran/index.blade_20260416103638.php | 273 --- .../iuran/index.blade_20260416103647.php | 273 --- .../iuran/index.blade_20260416164838.php | 273 --- .../iuran/index.blade_20260417143850.php | 273 --- .../laporan/index.blade_20260401140242.php | 0 .../laporan/index.blade_20260401140250.php | 21 - .../layanan/index.blade_20260329193909.php | 0 .../layanan/index.blade_20260329193925.php | 1 - .../layanan/index.blade_20260329193930.php | 1 - .../layanan/index.blade_20260329193942.php | 1 - .../layanan/index.blade_20260329193944.php | 1 - .../layanan/index.blade_20260329193947.php | 1 - .../layanan/index.blade_20260329193952.php | 1 - .../layanan/index.blade_20260329194000.php | 3 - .../layanan/index.blade_20260329194002.php | 3 - .../layanan/index.blade_20260329194003.php | 3 - .../layanan/index.blade_20260329194005.php | 3 - .../layanan/index.blade_20260329194026.php | 4 - .../layanan/index.blade_20260329194029.php | 5 - .../layanan/index.blade_20260329201345.php | 157 -- .../layanan/index.blade_20260410141159.php | 158 -- .../layanan/index.blade_20260410141202.php | 158 -- .../layanan/index.blade_20260410141217.php | 166 -- .../layanan/index.blade_20260410141222.php | 166 -- .../layanan/index.blade_20260410141226.php | 166 -- .../layanan/index.blade_20260410141229.php | 166 -- .../layanan/index.blade_20260410141231.php | 166 -- .../layanan/index.blade_20260413214138.php | 166 -- .../layanan/index.blade_20260413214140.php | 166 -- .../layanan/index.blade_20260413214143.php | 166 -- .../layanan/index.blade_20260413214145.php | 166 -- .../layanan/index.blade_20260413214149.php | 166 -- .../layanan/index.blade_20260413214308.php | 168 -- .../layanan/index.blade_20260413214757.php | 170 -- .../layanan/index.blade_20260413214803.php | 170 -- .../layanan/index.blade_20260413214814.php | 166 -- .../layanan/index.blade_20260413214835.php | 168 -- .../layanan/index.blade_20260413214837.php | 174 -- .../layanan/index.blade_20260413214840.php | 168 -- .../layanan/index.blade_20260413214841.php | 174 -- .../layanan/index.blade_20260413215101.php | 174 -- .../layanan/index.blade_20260413215340.php | 174 -- .../layanan/index.blade_20260413215342.php | 174 -- .../layanan/index.blade_20260413215350.php | 183 -- .../layanan/index.blade_20260413215351.php | 183 -- .../layanan/index.blade_20260413215408.php | 184 --- .../layanan/index.blade_20260413215412.php | 192 --- .../layanan/index.blade_20260413215413.php | 192 --- .../layanan/index.blade_20260413215420.php | 183 -- .../layanan/index.blade_20260413215421.php | 184 --- .../layanan/index.blade_20260413215423.php | 193 --- .../layanan/index.blade_20260413215427.php | 185 --- .../layanan/index.blade_20260413215433.php | 194 --- .../layanan/index.blade_20260413215614.php | 188 --- .../layanan/index.blade_20260413215932.php | 187 --- .../layanan/index.blade_20260413220034.php | 175 -- .../layanan/index.blade_20260413220035.php | 175 -- .../layanan/index.blade_20260413220157.php | 175 -- .../layanan/index.blade_20260413220211.php | 167 -- .../layanan/index.blade_20260413220358.php | 167 -- .../layanan/index.blade_20260413220400.php | 167 -- .../layanan/index.blade_20260413220549.php | 174 -- .../layanan/index.blade_20260413220602.php | 187 --- .../layanan/index.blade_20260413220603.php | 187 --- .../layanan/index.blade_20260413220604.php | 187 --- .../layanan/index.blade_20260413220605.php | 187 --- .../layanan/index.blade_20260413220606.php | 187 --- .../layanan/index.blade_20260413220607.php | 187 --- .../layanan/index.blade_20260413220616.php | 178 -- .../layanan/index.blade_20260413220618.php | 189 --- .../layanan/index.blade_20260413220619.php | 189 --- .../layanan/index.blade_20260413220722.php | 189 --- .../layanan/index.blade_20260413220725.php | 189 --- .../layanan/index.blade_20260413221049.php | 178 -- .../layanan/index.blade_20260413221050.php | 178 -- .../layanan/index.blade_20260413221053.php | 178 -- .../layanan/index.blade_20260413221105.php | 183 -- .../layanan/index.blade_20260413221325.php | 152 -- .../layanan/index.blade_20260413221329.php | 185 --- .../layanan/index.blade_20260413221348.php | 184 --- .../layanan/index.blade_20260413221400.php | 188 --- .../layanan/index.blade_20260413221612.php | 158 -- .../layanan/index.blade_20260413221614.php | 158 -- .../layanan/index.blade_20260413221619.php | 156 -- .../layanan/index.blade_20260413221622.php | 188 --- .../layanan/index.blade_20260413221623.php | 187 --- .../layanan/index.blade_20260413223230.php | 188 --- .../layanan/index.blade_20260413223435.php | 176 -- .../layanan/index.blade_20260413223635.php | 176 -- .../layanan/index.blade_20260413223657.php | 189 --- .../layanan/index.blade_20260413223737.php | 189 --- .../layanan/index.blade_20260413223744.php | 189 --- .../layanan/index.blade_20260413223910.php | 189 --- .../layanan/index.blade_20260413223919.php | 189 --- .../layanan/index.blade_20260413223924.php | 189 --- .../layanan/index.blade_20260413223926.php | 189 --- .../layanan/index.blade_20260413223929.php | 189 --- .../layanan/index.blade_20260413223951.php | 189 --- .../layanan/index.blade_20260413224122.php | 189 --- .../layanan/index.blade_20260413224146.php | 189 --- .../layanan/index.blade_20260413224202.php | 189 --- .../layanan/index.blade_20260413224230.php | 189 --- .../layanan/index.blade_20260413224526.php | 190 --- .../layanan/index.blade_20260413224527.php | 189 --- .../layanan/index.blade_20260413224629.php | 188 --- .../layanan/index.blade_20260413224630.php | 188 --- .../layanan/index.blade_20260413224648.php | 187 --- .../layanan/index.blade_20260413224711.php | 156 -- .../layanan/index.blade_20260413224716.php | 186 --- .../layanan/index.blade_20260413224904.php | 189 --- .../layanan/index.blade_20260413224905.php | 186 --- .../layanan/index.blade_20260413224927.php | 166 -- .../layanan/index.blade_20260413225244.php | 169 -- .../layanan/index.blade_20260413225303.php | 173 -- .../layanan/index.blade_20260413225316.php | 177 -- .../layanan/index.blade_20260413225618.php | 171 -- .../layanan/index.blade_20260413225723.php | 142 -- .../layanan/index.blade_20260413225726.php | 172 -- .../layanan/index.blade_20260413225730.php | 171 -- .../layanan/index.blade_20260413230000.php | 171 -- .../layanan/index.blade_20260413230217.php | 174 -- .../layanan/index.blade_20260413230218.php | 171 -- .../layanan/index.blade_20260413230234.php | 171 -- .../layanan/index.blade_20260413230302.php | 167 -- .../layanan/index.blade_20260413230925.php | 167 -- .../layanan/index.blade_20260413231125.php | 167 -- .../layanan/index.blade_20260413231326.php | 168 -- .../layanan/index.blade_20260413231525.php | 171 -- .../layanan/index.blade_20260413231526.php | 168 -- .../layanan/index.blade_20260413231546.php | 168 -- .../layanan/index.blade_20260413231559.php | 159 -- .../layanan/index.blade_20260413231930.php | 157 -- .../layanan/index.blade_20260413232008.php | 157 -- .../layanan/index.blade_20260414203715.php | 1 - .../layanan/index.blade_20260414203718.php | 157 -- .../layanan/index.blade_20260414203722.php | 68 - .../layanan/index.blade_20260414203911.php | 157 -- .../layanan/index.blade_20260416104104.php | 174 -- .../penghuni/create.blade_20260330211444.php | 114 -- .../penghuni/edit.blade_20260329215153.php | 107 -- .../penghuni/edit.blade_20260329215155.php | 107 -- .../penghuni/edit.blade_20260331000512.php | 126 -- .../penghuni/edit.blade_20260331003312.php | 145 -- .../penghuni/edit.blade_20260331003334.php | 126 -- .../penghuni/edit.blade_20260331003335.php | 145 -- .../penghuni/edit.blade_20260331004145.php | 149 -- .../penghuni/edit.blade_20260331004150.php | 149 -- .../penghuni/edit.blade_20260331005052.php | 154 -- .../penghuni/edit.blade_20260331005058.php | 154 -- .../penghuni/edit.blade_20260331011340.php | 195 --- .../penghuni/edit.blade_20260331011403.php | 154 -- .../penghuni/edit.blade_20260331011404.php | 195 --- .../penghuni/edit.blade_20260331011721.php | 195 --- .../penghuni/edit.blade_20260331011745.php | 195 --- .../penghuni/edit.blade_20260331011748.php | 195 --- .../penghuni/edit.blade_20260331013113.php | 90 - .../penghuni/edit.blade_20260331013159.php | 90 - .../penghuni/edit.blade_20260331013200.php | 195 --- .../penghuni/edit.blade_20260331013220.php | 195 --- .../penghuni/edit.blade_20260331013225.php | 90 - .../penghuni/edit.blade_20260331171202.php | 122 -- .../penghuni/edit.blade_20260331171223.php | 134 -- .../penghuni/edit.blade_20260331171951.php | 131 -- .../penghuni/edit.blade_20260331171957.php | 129 -- .../penghuni/edit.blade_20260331172029.php | 134 -- .../penghuni/edit.blade_20260331172108.php | 131 -- .../penghuni/edit.blade_20260331172602.php | 131 -- .../penghuni/edit.blade_20260331172722.php | 131 -- .../penghuni/edit.blade_20260331173250.php | 131 -- .../penghuni/edit.blade_20260331173846.php | 131 -- .../penghuni/edit.blade_20260331174116.php | 131 -- .../penghuni/edit.blade_20260331174130.php | 131 -- .../penghuni/edit.blade_20260331174349.php | 131 -- .../penghuni/edit.blade_20260331175256.php | 131 -- .../penghuni/edit.blade_20260331175323.php | 131 -- .../penghuni/edit.blade_20260331175327.php | 131 -- .../penghuni/edit.blade_20260331175338.php | 131 -- .../penghuni/edit.blade_20260331175902.php | 131 -- .../penghuni/edit.blade_20260331180100.php | 131 -- .../penghuni/edit.blade_20260331180104.php | 134 -- .../penghuni/edit.blade_20260331180128.php | 134 -- .../penghuni/edit.blade_20260331180148.php | 134 -- .../penghuni/edit.blade_20260331180611.php | 143 -- .../penghuni/edit.blade_20260331180637.php | 143 -- .../penghuni/edit.blade_20260331182154.php | 137 -- .../penghuni/edit.blade_20260331182208.php | 135 -- .../penghuni/edit.blade_20260331182210.php | 134 -- .../penghuni/edit.blade_20260331182218.php | 137 -- .../penghuni/edit.blade_20260331182233.php | 137 -- .../penghuni/edit.blade_20260331182234.php | 136 -- .../penghuni/edit.blade_20260331182235.php | 135 -- .../penghuni/edit.blade_20260331182241.php | 135 -- .../penghuni/edit.blade_20260331182305.php | 135 -- .../penghuni/edit.blade_20260331183222.php | 124 -- .../penghuni/edit.blade_20260331235425.php | 127 -- .../penghuni/edit.blade_20260401102429.php | 163 -- .../penghuni/edit.blade_20260401102813.php | 154 -- .../penghuni/edit.blade_20260401102825.php | 163 -- .../penghuni/edit.blade_20260401102832.php | 154 -- .../penghuni/edit.blade_20260401102834.php | 163 -- .../penghuni/edit.blade_20260401102839.php | 154 -- .../penghuni/edit.blade_20260401103101.php | 309 ---- .../penghuni/edit.blade_20260401103110.php | 156 -- .../penghuni/edit.blade_20260401103119.php | 177 -- .../penghuni/edit.blade_20260401103131.php | 177 -- .../penghuni/edit.blade_20260401103215.php | 194 --- .../penghuni/index.blade_20260330202521.php | 149 -- .../penghuni/index.blade_20260330211656.php | 149 -- .../penghuni/index.blade_20260330211700.php | 149 -- .../penghuni/index.blade_20260330221630.php | 150 -- .../penghuni/index.blade_20260330221640.php | 150 -- .../penghuni/index.blade_20260330221854.php | 152 -- .../penghuni/index.blade_20260330221857.php | 206 --- .../penghuni/index.blade_20260330231250.php | 234 --- .../penghuni/index.blade_20260330231906.php | 239 --- .../penghuni/index.blade_20260330231910.php | 239 --- .../penghuni/index.blade_20260330232014.php | 239 --- .../penghuni/index.blade_20260330232017.php | 239 --- .../penghuni/index.blade_20260330232041.php | 239 --- .../penghuni/index.blade_20260330232826.php | 212 --- .../penghuni/index.blade_20260330232828.php | 212 --- .../penghuni/index.blade_20260330233005.php | 212 --- .../penghuni/index.blade_20260330233007.php | 239 --- .../penghuni/index.blade_20260330233253.php | 209 --- .../penghuni/index.blade_20260330233437.php | 249 --- .../penghuni/index.blade_20260330233502.php | 249 --- .../penghuni/index.blade_20260330233509.php | 249 --- .../penghuni/index.blade_20260330233554.php | 249 --- .../penghuni/index.blade_20260330233555.php | 249 --- .../penghuni/index.blade_20260330233604.php | 210 --- .../penghuni/index.blade_20260330233606.php | 239 --- .../penghuni/index.blade_20260330233811.php | 256 --- .../penghuni/index.blade_20260330233820.php | 256 --- .../penghuni/index.blade_20260330233824.php | 255 --- .../penghuni/index.blade_20260330233825.php | 254 --- .../penghuni/index.blade_20260330233827.php | 255 --- .../penghuni/index.blade_20260330233836.php | 253 --- .../penghuni/index.blade_20260330233847.php | 252 --- .../penghuni/index.blade_20260330234011.php | 239 --- .../penghuni/index.blade_20260330235807.php | 235 --- .../penghuni/index.blade_20260330235813.php | 235 --- .../penghuni/index.blade_20260331000257.php | 263 --- .../penghuni/index.blade_20260331001439.php | 263 --- .../penghuni/index.blade_20260331001446.php | 263 --- .../penghuni/index.blade_20260331002100.php | 264 --- .../penghuni/index.blade_20260331002102.php | 264 --- .../penghuni/index.blade_20260331002118.php | 277 ---- .../penghuni/index.blade_20260331002130.php | 277 ---- .../penghuni/index.blade_20260331002132.php | 277 ---- .../penghuni/index.blade_20260331002342.php | 277 ---- .../penghuni/index.blade_20260331002346.php | 277 ---- .../penghuni/index.blade_20260331002351.php | 277 ---- .../penghuni/index.blade_20260331002449.php | 277 ---- .../penghuni/index.blade_20260331002806.php | 277 ---- .../penghuni/index.blade_20260331002812.php | 277 ---- .../penghuni/index.blade_20260331013503.php | 277 ---- .../penghuni/index.blade_20260331013538.php | 277 ---- .../penghuni/index.blade_20260331141519.php | 277 ---- .../penghuni/index.blade_20260331144001.php | 297 ---- .../penghuni/index.blade_20260331144021.php | 309 ---- .../penghuni/index.blade_20260401000508.php | 309 ---- .../penghuni/index.blade_20260401002559.php | 324 ---- .../penghuni/index.blade_20260401002609.php | 324 ---- .../penghuni/index.blade_20260401002621.php | 349 ---- .../penghuni/index.blade_20260401002640.php | 367 ---- .../penghuni/index.blade_20260401003014.php | 376 ----- .../penghuni/index.blade_20260401003046.php | 372 ----- .../penghuni/index.blade_20260401003302.php | 371 ----- .../penghuni/index.blade_20260401003443.php | 374 ----- .../penghuni/index.blade_20260401003452.php | 374 ----- .../penghuni/index.blade_20260401004414.php | 148 -- .../penghuni/index.blade_20260401004416.php | 374 ----- .../penghuni/index.blade_20260401004418.php | 148 -- .../penghuni/index.blade_20260401004424.php | 148 -- .../penghuni/index.blade_20260401004427.php | 148 -- .../penghuni/index.blade_20260401004432.php | 374 ----- .../penghuni/index.blade_20260401004551.php | 303 ---- .../penghuni/index.blade_20260401004614.php | 374 ----- .../penghuni/index.blade_20260401004625.php | 303 ---- .../penghuni/index.blade_20260401004626.php | 303 ---- .../penghuni/index.blade_20260401004628.php | 303 ---- .../penghuni/index.blade_20260401004633.php | 374 ----- .../penghuni/index.blade_20260401004714.php | 348 ---- .../penghuni/index.blade_20260401004816.php | 374 ----- .../penghuni/index.blade_20260401005124.php | 389 ----- .../penghuni/index.blade_20260401005145.php | 396 ----- .../penghuni/index.blade_20260401005711.php | 396 ----- .../penghuni/index.blade_20260401005712.php | 396 ----- .../penghuni/index.blade_20260401005716.php | 396 ----- .../penghuni/index.blade_20260401005722.php | 397 ----- .../penghuni/index.blade_20260401005727.php | 400 ----- .../penghuni/index.blade_20260401005938.php | 391 ----- .../penghuni/index.blade_20260401005944.php | 387 ----- .../penghuni/index.blade_20260401010131.php | 392 ----- .../penghuni/index.blade_20260401010309.php | 393 ----- .../penghuni/index.blade_20260401010315.php | 393 ----- .../penghuni/index.blade_20260401010339.php | 412 ----- .../penghuni/index.blade_20260401010501.php | 418 ----- .../penghuni/index.blade_20260401010525.php | 407 ----- .../penghuni/index.blade_20260401010531.php | 409 ----- .../penghuni/index.blade_20260401010532.php | 418 ----- .../penghuni/index.blade_20260401010805.php | 440 ----- .../penghuni/index.blade_20260401010855.php | 442 ----- .../penghuni/index.blade_20260401010856.php | 444 ----- .../penghuni/index.blade_20260401010913.php | 448 ----- .../penghuni/index.blade_20260401011342.php | 449 ----- .../penghuni/index.blade_20260401011347.php | 449 ----- .../penghuni/index.blade_20260401011507.php | 468 ------ .../penghuni/index.blade_20260401011513.php | 451 ----- .../penghuni/index.blade_20260401011523.php | 451 ----- .../penghuni/index.blade_20260401011545.php | 460 ------ .../penghuni/index.blade_20260401011618.php | 460 ------ .../penghuni/index.blade_20260401011623.php | 459 ----- .../penghuni/index.blade_20260401011626.php | 457 ----- .../penghuni/index.blade_20260401011630.php | 457 ----- .../penghuni/index.blade_20260401011639.php | 459 ----- .../penghuni/index.blade_20260401011648.php | 457 ----- .../penghuni/index.blade_20260401011650.php | 458 ----- .../penghuni/index.blade_20260401011658.php | 462 ------ .../penghuni/index.blade_20260401011903.php | 469 ------ .../penghuni/index.blade_20260401094820.php | 465 ------ .../penghuni/index.blade_20260401094825.php | 465 ------ .../penghuni/index.blade_20260401095040.php | 465 ------ .../penghuni/index.blade_20260401095127.php | 442 ----- .../penghuni/index.blade_20260401095129.php | 440 ----- .../penghuni/index.blade_20260401095133.php | 465 ------ .../penghuni/index.blade_20260401095725.php | 259 --- .../penghuni/index.blade_20260401095745.php | 259 --- .../penghuni/index.blade_20260401095756.php | 465 ------ .../penghuni/index.blade_20260401095906.php | 464 ------ .../penghuni/index.blade_20260401095958.php | 463 ------ .../penghuni/index.blade_20260401100021.php | 462 ------ .../penghuni/index.blade_20260401100025.php | 461 ------ .../penghuni/index.blade_20260401100027.php | 460 ------ .../penghuni/index.blade_20260401100030.php | 459 ----- .../penghuni/index.blade_20260401100031.php | 458 ----- .../penghuni/index.blade_20260401100038.php | 457 ----- .../penghuni/index.blade_20260401100105.php | 450 ----- .../penghuni/index.blade_20260401100108.php | 448 ----- .../penghuni/index.blade_20260401100345.php | 448 ----- .../penghuni/index.blade_20260401100352.php | 446 ----- .../penghuni/index.blade_20260401100850.php | 431 ----- .../penghuni/index.blade_20260401100905.php | 446 ----- .../penghuni/index.blade_20260401100912.php | 431 ----- .../penghuni/index.blade_20260401100919.php | 413 ----- .../penghuni/index.blade_20260401100922.php | 412 ----- .../penghuni/index.blade_20260416201103.php | 409 ----- .../penghuni/index.blade_20260416201109.php | 412 ----- .../penghuni/index.blade_20260416201110.php | 412 ----- .../penghuni/index.blade_20260416201111.php | 409 ----- .../admin/user/edit.blade_20260401143649.php | 0 .../admin/user/edit.blade_20260401144211.php | 33 - .../admin/user/index.blade_20260401140834.php | 0 .../admin/user/index.blade_20260401140838.php | 29 - .../admin/user/index.blade_20260401143504.php | 30 - .../admin/user/index.blade_20260401143507.php | 30 - .../admin/user/index.blade_20260401143512.php | 31 - .../admin/user/index.blade_20260401143516.php | 31 - .../admin/user/index.blade_20260401143519.php | 31 - .../admin/user/index.blade_20260401143520.php | 31 - .../admin/user/index.blade_20260401143523.php | 31 - .../admin/user/index.blade_20260401143525.php | 31 - .../admin/user/index.blade_20260401143526.php | 33 - .../admin/user/index.blade_20260401143533.php | 31 - .../admin/user/index.blade_20260401143535.php | 31 - .../admin/user/index.blade_20260401143536.php | 31 - .../admin/user/index.blade_20260401144138.php | 33 - .../admin/user/index.blade_20260401144141.php | 33 - .../admin/user/index.blade_20260401144202.php | 33 - .../admin/user/index.blade_20260401144205.php | 33 - .../admin/user/index.blade_20260401144207.php | 33 - .../admin/user/index.blade_20260401144259.php | 39 - .../admin/user/index.blade_20260401144303.php | 39 - .../admin/user/index.blade_20260401145358.php | 47 - .../admin/user/index.blade_20260401145403.php | 47 - .../auth/forgot.blade_20260417151531.php | 0 .../auth/forgot.blade_20260417151624.php | 5 - .../auth/forgot.blade_20260417151918.php | 6 - .../auth/forgot.blade_20260417151920.php | 6 - .../auth/forgot.blade_20260417151922.php | 6 - .../auth/forgot.blade_20260417151930.php | 6 - .../auth/forgot.blade_20260417151933.php | 6 - .../auth/forgot.blade_20260417151935.php | 6 - .../auth/forgot.blade_20260417151937.php | 6 - .../auth/forgot.blade_20260417151938.php | 7 - .../auth/forgot.blade_20260417151951.php | 29 - .../auth/forgot.blade_20260417151955.php | 7 - .../auth/forgot.blade_20260417151959.php | 8 - .../auth/forgot.blade_20260417152002.php | 8 - .../auth/forgot.blade_20260417152032.php | 8 - .../auth/forgot.blade_20260417152033.php | 9 - .../auth/forgot.blade_20260417152035.php | 10 - .../auth/forgot.blade_20260417152039.php | 10 - .../auth/forgot.blade_20260417152041.php | 10 - .../auth/forgot.blade_20260417152046.php | 5 - .../auth/forgot.blade_20260417152048.php | 9 - .../auth/forgot.blade_20260417152049.php | 9 - .../auth/forgot.blade_20260417152120.php | 9 - .../views/auth/login.blade_20260329205728.php | 0 .../views/auth/login.blade_20260329205944.php | 5 - .../views/auth/login.blade_20260329210233.php | 53 - .../views/auth/login.blade_20260417151736.php | 57 - .../views/auth/login.blade_20260417151739.php | 57 - .../views/auth/otp.blade_20260417151542.php | 0 .../views/auth/otp.blade_20260417151634.php | 5 - .../views/auth/otp.blade_20260417152104.php | 6 - .../views/auth/otp.blade_20260417152107.php | 7 - .../views/auth/otp.blade_20260417152140.php | 7 - .../views/auth/otp.blade_20260417152142.php | 7 - .../views/auth/otp.blade_20260417152144.php | 7 - .../views/auth/otp.blade_20260417152145.php | 7 - .../views/auth/otp.blade_20260417152148.php | 9 - .../views/auth/otp.blade_20260417152151.php | 9 - .../views/auth/otp.blade_20260417152152.php | 9 - .../views/auth/otp.blade_20260417152153.php | 9 - .../views/auth/otp.blade_20260417152200.php | 11 - .../views/auth/otp.blade_20260417152201.php | 11 - .../views/auth/otp.blade_20260417152206.php | 7 - .../views/auth/otp.blade_20260417152210.php | 9 - .../auth/register.blade_20260329205737.php | 0 .../auth/register.blade_20260329205951.php | 5 - .../auth/register.blade_20260329210240.php | 57 - .../auth/register.blade_20260329230738.php | 25 - .../auth/register.blade_20260329230740.php | 25 - .../auth/register.blade_20260329230742.php | 25 - .../auth/register.blade_20260329230743.php | 25 - .../auth/register.blade_20260329230745.php | 57 - .../auth/register.blade_20260329230755.php | 29 - .../auth/register.blade_20260329230757.php | 57 - .../auth/register.blade_20260329230805.php | 55 - .../auth/register.blade_20260329230809.php | 55 - .../auth/register.blade_20260329230811.php | 57 - .../auth/register.blade_20260329230813.php | 55 - .../auth/register.blade_20260329230818.php | 55 - .../auth/register.blade_20260329230820.php | 55 - .../auth/register.blade_20260329230825.php | 55 - .../auth/register.blade_20260329230826.php | 57 - .../auth/register.blade_20260329230829.php | 55 - .../views/auth/reset.blade_20260417151554.php | 0 .../views/auth/reset.blade_20260417151707.php | 10 - .../views/auth/reset.blade_20260417152223.php | 12 - .../views/auth/reset.blade_20260417152227.php | 12 - .../views/auth/reset.blade_20260417152234.php | 12 - .../views/auth/reset.blade_20260417152235.php | 12 - .../views/auth/reset.blade_20260417152239.php | 12 - .../views/auth/reset.blade_20260417152240.php | 12 - .../views/auth/reset.blade_20260417152242.php | 14 - .../views/auth/reset.blade_20260417152244.php | 14 - .../views/auth/reset.blade_20260417152245.php | 14 - .../views/auth/reset.blade_20260417152246.php | 14 - .../views/auth/reset.blade_20260417152254.php | 16 - .../views/auth/reset.blade_20260417152300.php | 5 - .../views/auth/reset.blade_20260417152303.php | 14 - .../footer.blade_20250815102405.php | 0 .../footer.blade_20250815102409.php | 7 - .../sidebar-user.blade_20260329214125.php | 0 .../sidebar-user.blade_20260329214342.php | 54 - .../sidebar-user.blade_20260329232954.php | 91 - .../sidebar-user.blade_20260329233226.php | 91 - .../sidebar-user.blade_20260329233227.php | 91 - .../sidebar-user.blade_20260331090743.php | 41 - .../sidebar-user.blade_20260331101529.php | 51 - .../sidebar-user.blade_20260331103322.php | 51 - .../sidebar-user.blade_20260331103344.php | 51 - .../sidebar-user.blade_20260331103728.php | 51 - .../sidebar-user.blade_20260331103736.php | 51 - .../sidebar-user.blade_20260331103737.php | 51 - .../sidebar-user.blade_20260331104845.php | 77 - .../sidebar-user.blade_20260331104926.php | 92 -- .../sidebar-user.blade_20260401105521.php | 119 -- .../sidebar-user.blade_20260401105539.php | 119 -- .../sidebar.blade_20260329194110.php | 82 - .../sidebar.blade_20260329194111.php | 82 - .../sidebar.blade_20260329194115.php | 82 - .../sidebar.blade_20260329195002.php | 82 - .../sidebar.blade_20260329195004.php | 82 - .../sidebar.blade_20260329214221.php | 82 - .../sidebar.blade_20260329214225.php | 82 - .../sidebar.blade_20260329214228.php | 82 - .../sidebar.blade_20260329214230.php | 82 - .../sidebar.blade_20260329214234.php | 82 - .../sidebar.blade_20260329214238.php | 82 - .../sidebar.blade_20260329214241.php | 82 - .../sidebar.blade_20260329233411.php | 87 - .../sidebar.blade_20260329233438.php | 91 - .../sidebar.blade_20260401141129.php | 88 - .../sidebar.blade_20260401141131.php | 91 - .../sidebar.blade_20260401141135.php | 86 - .../sidebar.blade_20260401141136.php | 91 - .../sidebar.blade_20260401141144.php | 91 - .../sidebar.blade_20260401141145.php | 91 - .../sidebar.blade_20260401141147.php | 91 - .../sidebar.blade_20260401141154.php | 91 - .../sidebar.blade_20260401141156.php | 91 - .../sidebar.blade_20260401141201.php | 91 - .../sidebar.blade_20260401141203.php | 91 - .../sidebar.blade_20260401141510.php | 91 - .../sidebar.blade_20260401141512.php | 91 - .../sidebar.blade_20260401141539.php | 91 - .../sidebar.blade_20260413205346.php | 84 - .../sidebar.blade_20260413205352.php | 149 -- .../sidebar.blade_20260413205357.php | 91 - .../sidebar.blade_20260413205359.php | 86 - .../sidebar.blade_20260413205403.php | 151 -- .../sidebar.blade_20260413205530.php | 151 -- .../sidebar.blade_20260413205550.php | 150 -- .../sidebar.blade_20260413205556.php | 154 -- .../sidebar.blade_20260413205606.php | 151 -- .../sidebar.blade_20260413210014.php | 171 -- .../sidebar.blade_20260413210020.php | 172 -- .../sidebar.blade_20260413210022.php | 177 -- .../sidebar.blade_20260413210036.php | 182 -- .../sidebar.blade_20260413210053.php | 153 -- .../sidebar.blade_20260413210233.php | 182 -- .../sidebar.blade_20260413210239.php | 194 --- .../sidebar.blade_20260413210244.php | 199 --- .../sidebar.blade_20260413210248.php | 204 --- .../sidebar.blade_20260413210302.php | 153 -- .../sidebar_rt.blade_20260416105019.php | 0 .../sidebar_rt.blade_20260416105028.php | 62 - .../sidebar_rt.blade_20260416105244.php | 64 - .../sidebar_rt.blade_20260416105250.php | 69 - .../sidebar_rt.blade_20260416105311.php | 69 - .../sidebar_rt.blade_20260416105325.php | 74 - .../sidebar_rt.blade_20260416121034.php | 74 - .../sidebar_rt.blade_20260416121430.php | 81 - .../sidebar_rt.blade_20260416164927.php | 81 - .../sidebar_rt.blade_20260416170114.php | 81 - .../sidebar_rt.blade_20260416170115.php | 81 - .../sidebar_rt.blade_20260416171547.php | 75 - .../sidebar_rt.blade_20260416171551.php | 82 - .../topbar.blade_20250815102246.php | 0 .../topbar.blade_20250815102250.php | 201 --- .../topbar.blade_20250815132344.php | 201 --- .../topbar.blade_20250815132346.php | 201 --- .../views/dashboard.blade_20250815102838.php | 8 - .../views/dashboard.blade_20250819084906.php | 737 --------- .../views/dashboard.blade_20250819084922.php | 720 -------- .../views/dashboard.blade_20250819084923.php | 719 -------- .../views/dashboard.blade_20250819084935.php | 718 -------- .../views/dashboard.blade_20250819084941.php | 720 -------- .../views/dashboard.blade_20250819084945.php | 8 - .../views/dashboard.blade_20250819085052.php | 332 ---- .../views/dashboard.blade_20250819092806.php | 20 - .../views/dashboard.blade_20250819093041.php | 35 - .../views/dashboard.blade_20250819093056.php | 25 - .../views/dashboard.blade_20250819093110.php | 25 - .../views/dashboard.blade_20250819093112.php | 20 - .../views/dashboard.blade_20250819093338.php | 143 -- .../views/emails/otp.blade_20260417151014.php | 0 .../views/emails/otp.blade_20260417151021.php | 6 - .../views/emails/otp.blade_20260417153609.php | 7 - .../views/emails/otp.blade_20260417154138.php | 17 - .../emails/pengaduan.blade_20260413212544.php | 0 .../emails/pengaduan.blade_20260413212554.php | 9 - .../emails/pengaduan.blade_20260414141746.php | 76 - .../views/home.blade_20250815102542.php | 0 .../views/home.blade_20250815102546.php | 6 - .../views/home.blade_20250815102612.php | 5 - .../views/home.blade_20250815102614.php | 6 - .../views/home.blade_20250815102616.php | 5 - .../views/home.blade_20250815102617.php | 6 - .../views/home.blade_20250815102621.php | 6 - .../views/home.blade_20250815102623.php | 6 - .../views/home.blade_20250815102626.php | 6 - .../views/home.blade_20250815102628.php | 6 - .../views/home.blade_20250815102630.php | 5 - .../views/home.blade_20250815102632.php | 4 - .../views/home.blade_20250815102634.php | 4 - .../views/home.blade_20250815102759.php | 5 - .../views/home.blade_20250815102801.php | 4 - .../views/home.blade_20250815102803.php | 4 - .../views/home.blade_20250815102804.php | 5 - .../views/home.blade_20250815102809.php | 6 - .../views/home.blade_20250815102820.php | 6 - .../views/home.blade_20250815102823.php | 6 - .../views/home.blade_20250815102826.php | 6 - .../views/home.blade_20250815102828.php | 7 - .../views/home.blade_20250815102830.php | 7 - .../views/home.blade_20250815102833.php | 7 - .../views/home.blade_20250815102836.php | 8 - .../views/home.blade_20250815102837.php | 8 - .../views/home.blade_20250815102839.php | 8 - .../views/home.blade_20250819085924.php | 331 ---- .../views/home.blade_20250819085932.php | 329 ---- .../views/home.blade_20250819085934.php | 330 ---- .../views/home.blade_20250819085946.php | 332 ---- .../views/home.blade_20250819090249.php | 5 - .../views/home.blade_20250819090251.php | 5 - .../views/home.blade_20250819090254.php | 23 - .../views/home.blade_20250819090554.php | 6 - .../views/home.blade_20250819090557.php | 23 - .../views/home.blade_20250819090604.php | 23 - .../views/home.blade_20250819090606.php | 5 - .../views/home.blade_20250819090611.php | 6 - .../views/home.blade_20250819090612.php | 6 - .../views/home.blade_20250819090616.php | 6 - .../views/home.blade_20250819090619.php | 23 - .../views/home.blade_20250819091136.php | 5 - .../views/home.blade_20250819091139.php | 5 - .../views/home.blade_20250819091141.php | 5 - .../views/home.blade_20250819091145.php | 5 - .../views/home.blade_20250819091149.php | 16 - .../views/home.blade_20250819091153.php | 5 - .../views/home.blade_20250819091154.php | 5 - .../views/home.blade_20250819091157.php | 25 - .../views/home.blade_20250819091442.php | 5 - .../views/home.blade_20250819091444.php | 4 - .../views/home.blade_20250819091447.php | 25 - .../layouts/app.blade_20260329231746.php | 104 -- .../layouts/app.blade_20260329231751.php | 104 -- .../layouts/app.blade_20260329231846.php | 99 -- .../layouts/app.blade_20260329232645.php | 105 -- .../layouts/app.blade_20260329232649.php | 105 -- .../layouts/app.blade_20260329233335.php | 105 -- .../layouts/app.blade_20260331101601.php | 117 -- .../layouts/app.blade_20260331101602.php | 106 -- .../layouts/app.blade_20260331101604.php | 106 -- .../layouts/app.blade_20260331101608.php | 119 -- .../layouts/app.blade_20260331101609.php | 108 -- .../layouts/app.blade_20260331101617.php | 106 -- .../layouts/app.blade_20260331103447.php | 121 -- .../layouts/app.blade_20260331103708.php | 105 -- .../layouts/app.blade_20260331103716.php | 121 -- .../layouts/app.blade_20260331104702.php | 121 -- .../layouts/app.blade_20260331104742.php | 121 -- .../layouts/app.blade_20260331104755.php | 121 -- .../layouts/app.blade_20260331104801.php | 121 -- .../layouts/app.blade_20260331105425.php | 117 -- .../layouts/app.blade_20260331105427.php | 121 -- .../layouts/app.blade_20260331105429.php | 117 -- .../layouts/app.blade_20260331105432.php | 117 -- .../layouts/app.blade_20260331105631.php | 189 --- .../layouts/app.blade_20260331105655.php | 184 --- .../layouts/app.blade_20260331105708.php | 189 --- .../layouts/app.blade_20260331105723.php | 200 --- .../layouts/app.blade_20260331105859.php | 200 --- .../layouts/app.blade_20260331112838.php | 200 --- .../layouts/app.blade_20260331112843.php | 194 --- .../layouts/app.blade_20260331112844.php | 200 --- .../layouts/app.blade_20260331112850.php | 200 --- .../layouts/app.blade_20260331112859.php | 201 --- .../layouts/app.blade_20260331112903.php | 201 --- .../layouts/app.blade_20260331112916.php | 201 --- .../layouts/app.blade_20260331112920.php | 203 --- .../layouts/app.blade_20260331112941.php | 233 --- .../layouts/app.blade_20260331112954.php | 233 --- .../layouts/app.blade_20260331113927.php | 261 --- .../layouts/app.blade_20260331113931.php | 235 --- .../layouts/app.blade_20260331113956.php | 255 --- .../layouts/app.blade_20260331114001.php | 255 --- .../layouts/app.blade_20260331114009.php | 255 --- .../layouts/app.blade_20260331114011.php | 235 --- .../layouts/app.blade_20260331114015.php | 255 --- .../layouts/app.blade_20260331114020.php | 255 --- .../layouts/app.blade_20260331140617.php | 257 --- .../layouts/app.blade_20260401004903.php | 257 --- .../layouts/app.blade_20260401100616.php | 259 --- .../layouts/app.blade_20260401100627.php | 258 --- .../layouts/app.blade_20260401100700.php | 260 --- .../layouts/app.blade_20260401100710.php | 257 --- .../layouts/app.blade_20260401100721.php | 257 --- .../layouts/app.blade_20260401100723.php | 259 --- .../layouts/app.blade_20260401100726.php | 259 --- .../layouts/app.blade_20260401100738.php | 261 --- .../layouts/app.blade_20260401110136.php | 261 --- .../layouts/app.blade_20260401110215.php | 261 --- .../layouts/app.blade_20260401110217.php | 288 ---- .../layouts/app.blade_20260401110228.php | 288 ---- .../layouts/app.blade_20260401110414.php | 279 ---- .../layouts/app.blade_20260401110425.php | 279 ---- .../layouts/app.blade_20260401110428.php | 278 ---- .../layouts/app.blade_20260401110446.php | 292 ---- .../layouts/app.blade_20260401110500.php | 293 ---- .../layouts/app.blade_20260401110502.php | 294 ---- .../layouts/app.blade_20260401110608.php | 294 ---- .../layouts/app.blade_20260401110614.php | 294 ---- .../layouts/app.blade_20260401110653.php | 294 ---- .../layouts/app.blade_20260401111144.php | 294 ---- .../layouts/app.blade_20260401111148.php | 294 ---- .../layouts/app.blade_20260401111315.php | 292 ---- .../layouts/app.blade_20260401111346.php | 297 ---- .../layouts/app.blade_20260401111351.php | 301 ---- .../layouts/app.blade_20260401111415.php | 299 ---- .../layouts/app.blade_20260401111423.php | 301 ---- .../layouts/app.blade_20260401111615.php | 303 ---- .../layouts/app.blade_20260401111619.php | 303 ---- .../layouts/app.blade_20260401111620.php | 303 ---- .../layouts/app.blade_20260401111708.php | 306 ---- .../layouts/app.blade_20260401111835.php | 307 ---- .../layouts/app.blade_20260401111841.php | 307 ---- .../layouts/app.blade_20260401111848.php | 307 ---- .../layouts/app.blade_20260401111909.php | 312 ---- .../layouts/app.blade_20260401150113.php | 312 ---- .../layouts/app.blade_20260401150117.php | 312 ---- .../layouts/app.blade_20260401150313.php | 317 ---- .../layouts/app.blade_20260401150319.php | 317 ---- .../layouts/app.blade_20260401150321.php | 317 ---- .../layouts/app.blade_20260401150501.php | 319 ---- .../layouts/app.blade_20260401150508.php | 319 ---- .../layouts/app.blade_20260401150511.php | 319 ---- .../layouts/app.blade_20260401150532.php | 344 ---- .../layouts/app.blade_20260401150541.php | 350 ---- .../layouts/app.blade_20260401150713.php | 350 ---- .../layouts/app.blade_20260401150718.php | 350 ---- .../layouts/app.blade_20260401150736.php | 354 ---- .../layouts/app.blade_20260401155325.php | 359 ---- .../layouts/app.blade_20260401155329.php | 359 ---- .../layouts/app.blade_20260401155333.php | 358 ---- .../layouts/app.blade_20260401155351.php | 362 ---- .../layouts/app.blade_20260401155723.php | 362 ---- .../layouts/app.blade_20260401155728.php | 362 ---- .../layouts/app.blade_20260401155804.php | 362 ---- .../layouts/app.blade_20260401155808.php | 362 ---- .../layouts/app.blade_20260401155829.php | 362 ---- .../layouts/app.blade_20260401155940.php | 369 ----- .../layouts/app.blade_20260401155955.php | 363 ---- .../layouts/app.blade_20260401160012.php | 362 ---- .../layouts/app.blade_20260401160016.php | 362 ---- .../layouts/app.blade_20260401160307.php | 370 ----- .../layouts/app.blade_20260401160319.php | 378 ----- .../layouts/app.blade_20260401160432.php | 376 ----- .../layouts/app.blade_20260401160436.php | 376 ----- .../layouts/app.blade_20260401160454.php | 373 ----- .../layouts/app.blade_20260401160506.php | 377 ----- .../layouts/app.blade_20260408163333.php | 377 ----- .../layouts/app.blade_20260408163345.php | 377 ----- .../layouts/app.blade_20260408163426.php | 377 ----- .../layouts/app.blade_20260408163431.php | 377 ----- .../layouts/app.blade_20260408163437.php | 377 ----- .../layouts/app.blade_20260408163444.php | 377 ----- .../layouts/app.blade_20260408163723.php | 377 ----- .../layouts/app.blade_20260408163729.php | 377 ----- .../layouts/app.blade_20260408163734.php | 377 ----- .../layouts/app.blade_20260408163742.php | 377 ----- .../layouts/app.blade_20260408164254.php | 377 ----- .../layouts/app.blade_20260408164259.php | 376 ----- .../layouts/app.blade_20260408164301.php | 377 ----- .../layouts/app.blade_20260408164303.php | 377 ----- .../layouts/app.blade_20260408164306.php | 377 ----- .../layouts/app.blade_20260408164311.php | 377 ----- .../layouts/app.blade_20260408164314.php | 377 ----- .../layouts/app.blade_20260408164333.php | 377 ----- .../layouts/app.blade_20260408164336.php | 377 ----- .../layouts/app.blade_20260408164521.php | 377 ----- .../layouts/app.blade_20260408164609.php | 377 ----- .../layouts/app.blade_20260408164629.php | 377 ----- .../layouts/app.blade_20260408165011.php | 377 ----- .../layouts/app.blade_20260408165845.php | 380 ----- .../layouts/app.blade_20260408165850.php | 380 ----- .../layouts/app.blade_20260409095659.php | 380 ----- .../layouts/app.blade_20260409095701.php | 380 ----- .../layouts/app.blade_20260409095827.php | 386 ----- .../layouts/app.blade_20260409095840.php | 386 ----- .../layouts/app.blade_20260409095844.php | 386 ----- .../layouts/app.blade_20260409095852.php | 386 ----- .../layouts/app.blade_20260409095853.php | 386 ----- .../layouts/app.blade_20260409095858.php | 386 ----- .../layouts/app.blade_20260409095900.php | 386 ----- .../layouts/app.blade_20260409095912.php | 386 ----- .../layouts/app.blade_20260409095917.php | 386 ----- .../layouts/app.blade_20260409095928.php | 386 ----- .../layouts/app.blade_20260409095932.php | 386 ----- .../layouts/app.blade_20260409095941.php | 386 ----- .../layouts/app.blade_20260409095945.php | 386 ----- .../layouts/app.blade_20260409095948.php | 386 ----- .../layouts/app.blade_20260409100003.php | 386 ----- .../layouts/app.blade_20260409100012.php | 386 ----- .../layouts/app.blade_20260409100026.php | 386 ----- .../layouts/app.blade_20260409100029.php | 386 ----- .../layouts/app.blade_20260409100033.php | 385 ----- .../layouts/app.blade_20260409100039.php | 385 ----- .../layouts/app.blade_20260409100043.php | 385 ----- .../layouts/app.blade_20260409100045.php | 385 ----- .../layouts/app.blade_20260409100046.php | 385 ----- .../layouts/app.blade_20260409100048.php | 385 ----- .../layouts/app.blade_20260409100050.php | 385 ----- .../layouts/app.blade_20260409130932.php | 384 ----- .../layouts/app.blade_20260409130939.php | 384 ----- .../layouts/app.blade_20260409131038.php | 385 ----- .../layouts/app.blade_20260409131041.php | 384 ----- .../layouts/app.blade_20260409131044.php | 385 ----- .../layouts/app.blade_20260409131056.php | 384 ----- .../layouts/app.blade_20260409131058.php | 385 ----- .../layouts/app.blade_20260409131104.php | 385 ----- .../layouts/app.blade_20260409131107.php | 385 ----- .../layouts/app.blade_20260409131108.php | 385 ----- .../layouts/app.blade_20260409131111.php | 385 ----- .../layouts/app.blade_20260409131113.php | 385 ----- .../layouts/app.blade_20260409131115.php | 385 ----- .../layouts/app.blade_20260410133656.php | 385 ----- .../layouts/app.blade_20260410133700.php | 385 ----- .../layouts/app.blade_20260410133707.php | 385 ----- .../layouts/app.blade_20260410133710.php | 385 ----- .../layouts/app.blade_20260410155204.php | 386 ----- .../layouts/app.blade_20260410155206.php | 401 ----- .../layouts/app.blade_20260410155212.php | 401 ----- .../layouts/app.blade_20260410155241.php | 442 ----- .../layouts/app.blade_20260410155258.php | 448 ----- .../layouts/app.blade_20260410155621.php | 461 ------ .../layouts/app.blade_20260410155635.php | 466 ------ .../layouts/app.blade_20260410162246.php | 473 ------ .../layouts/app.blade_20260410162301.php | 495 ------ .../layouts/app.blade_20260410162309.php | 499 ------ .../layouts/app.blade_20260413201627.php | 494 ------ .../layouts/app.blade_20260413201638.php | 494 ------ .../layouts/app.blade_20260413201640.php | 494 ------ .../layouts/app.blade_20260413201900.php | 519 ------ .../layouts/app.blade_20260413201902.php | 494 ------ .../layouts/app.blade_20260413201930.php | 516 ------ .../layouts/app.blade_20260413202121.php | 520 ------ .../layouts/app.blade_20260413202136.php | 520 ------ .../layouts/app.blade_20260413202143.php | 524 ------ .../layouts/app.blade_20260413202203.php | 524 ------ .../layouts/app.blade_20260413202210.php | 524 ------ .../layouts/app.blade_20260413202222.php | 524 ------ .../layouts/app.blade_20260413202223.php | 524 ------ .../layouts/app.blade_20260413202400.php | 528 ------ .../layouts/app.blade_20260413202401.php | 526 ------ .../layouts/app.blade_20260413202403.php | 525 ------ .../layouts/app.blade_20260413202409.php | 527 ------ .../layouts/app.blade_20260413202413.php | 527 ------ .../layouts/app.blade_20260413202417.php | 527 ------ .../layouts/app.blade_20260413202437.php | 551 ------ .../layouts/app.blade_20260413202445.php | 567 ------- .../layouts/app.blade_20260413202638.php | 686 -------- .../layouts/app.blade_20260413202652.php | 689 -------- .../layouts/app.blade_20260413203054.php | 732 -------- .../layouts/app.blade_20260413203121.php | 732 -------- .../layouts/app.blade_20260413203124.php | 732 -------- .../layouts/app.blade_20260413203128.php | 728 -------- .../layouts/app.blade_20260413203417.php | 742 --------- .../layouts/app.blade_20260413203557.php | 746 --------- .../layouts/app.blade_20260413204217.php | 627 ------- .../layouts/app.blade_20260413205746.php | 629 ------- .../layouts/app.blade_20260413205749.php | 628 ------- .../layouts/app.blade_20260413205754.php | 671 -------- .../layouts/app.blade_20260413205802.php | 676 -------- .../layouts/app.blade_20260413205950.php | 628 ------- .../layouts/app.blade_20260413210712.php | 627 ------- .../layouts/app.blade_20260413211010.php | 627 ------- .../layouts/app.blade_20260413211013.php | 627 ------- .../layouts/app.blade_20260413211017.php | 627 ------- .../layouts/app.blade_20260413211242.php | 641 ------- .../layouts/app.blade_20260413220233.php | 641 ------- .../layouts/app.blade_20260413220316.php | 644 -------- .../layouts/app.blade_20260414210507.php | 644 -------- .../layouts/app.blade_20260414210509.php | 644 -------- .../layouts/app.blade_20260414210510.php | 644 -------- .../layouts/app.blade_20260414210518.php | 644 -------- .../layouts/app.blade_20260414210520.php | 644 -------- .../layouts/app.blade_20260414210544.php | 644 -------- .../layouts/app.blade_20260414223319.php | 646 -------- .../layouts/app.blade_20260414223320.php | 646 -------- .../layouts/app.blade_20260414223327.php | 644 -------- .../layouts/app.blade_20260414230607.php | 646 -------- .../layouts/app.blade_20260414231443.php | 646 -------- .../layouts/app.blade_20260416092525.php | 646 -------- .../layouts/app.blade_20260416092526.php | 646 -------- .../layouts/app.blade_20260416092538.php | 646 -------- .../layouts/app.blade_20260416104945.php | 654 -------- .../layouts/app.blade_20260416194149.php | 670 -------- .../layouts/app.blade_20260416195740.php | 681 -------- .../layouts/app.blade_20260416195741.php | 681 -------- .../layouts/app.blade_20260416195742.php | 681 -------- .../layouts/app.blade_20260416195748.php | 671 -------- .../layouts/app.blade_20260416195803.php | 683 -------- .../layouts/app.blade_20260416195806.php | 683 -------- .../layouts/auth.blade_20260329205914.php | 0 .../layouts/auth.blade_20260329205934.php | 12 - .../layouts/user.blade_20260329215225.php | 0 .../layouts/user.blade_20260329215239.php | 98 -- .../layouts/user.blade_20260329231718.php | 101 -- .../layouts/user.blade_20260329232053.php | 99 -- .../layouts/user.blade_20260329232118.php | 101 -- .../layouts/user.blade_20260329232318.php | 98 -- .../rt/dashboard.blade_20260416121357.php | 0 .../rt/dashboard.blade_20260416121413.php | 55 - .../penghuni/index.blade_20260416170052.php | 0 .../penghuni/index.blade_20260416170057.php | 60 - .../penghuni/index.blade_20260416170511.php | 60 - .../penghuni/index.blade_20260416170513.php | 60 - .../penghuni/index.blade_20260416170518.php | 60 - .../penghuni/index.blade_20260416170549.php | 60 - .../penghuni/index.blade_20260416170625.php | 60 - .../penghuni/index.blade_20260416170627.php | 60 - .../penghuni/index.blade_20260416170628.php | 60 - .../user/dashboard.blade_20250819093337.php | 143 -- .../user/dashboard.blade_20260329230309.php | 143 -- .../user/dashboard.blade_20260329230311.php | 143 -- .../user/dashboard.blade_20260329233159.php | 143 -- .../user/dashboard.blade_20260410155432.php | 159 -- .../user/dashboard.blade_20260410155449.php | 193 --- .../user/data_iuran.blade_20260401113508.php | 0 .../user/data_iuran.blade_20260401113645.php | 7 - .../user/data_iuran.blade_20260401113650.php | 7 - .../views/user/home.blade_20260331090803.php | 0 .../views/user/home.blade_20260331090852.php | 34 - .../views/user/home.blade_20260331123659.php | 36 - .../views/user/home.blade_20260331123701.php | 70 - .../views/user/home.blade_20260331123716.php | 70 - .../views/user/home.blade_20260331125439.php | 72 - .../views/user/home.blade_20260331125441.php | 79 - .../views/user/home.blade_20260331125445.php | 79 - .../views/user/home.blade_20260331132741.php | 81 - .../views/user/home.blade_20260331132745.php | 84 - .../views/user/home.blade_20260331132939.php | 84 - .../views/user/home.blade_20260331133335.php | 97 -- .../views/user/home.blade_20260331134331.php | 118 -- .../views/user/home.blade_20260331134619.php | 135 -- .../views/user/home.blade_20260331134700.php | 135 -- .../views/user/home.blade_20260331134813.php | 135 -- .../views/user/home.blade_20260331135045.php | 123 -- .../views/user/home.blade_20260331135928.php | 137 -- .../views/user/home.blade_20260331141346.php | 142 -- .../views/user/home.blade_20260331141351.php | 142 -- .../views/user/home.blade_20260401012415.php | 148 -- .../views/user/home.blade_20260408194112.php | 171 -- .../views/user/home.blade_20260408194114.php | 171 -- .../views/user/home.blade_20260408213537.php | 171 -- .../views/user/home.blade_20260408213541.php | 148 -- .../views/user/home.blade_20260408213546.php | 171 -- .../views/user/home.blade_20260408213550.php | 171 -- .../views/user/home.blade_20260408214150.php | 167 -- .../views/user/home.blade_20260408214153.php | 171 -- .../views/user/home.blade_20260408214201.php | 173 -- .../views/user/home.blade_20260408214210.php | 173 -- .../views/user/home.blade_20260409083052.php | 214 --- .../views/user/home.blade_20260409083107.php | 214 --- .../views/user/home.blade_20260409084206.php | 198 --- .../views/user/home.blade_20260409084215.php | 198 --- .../views/user/home.blade_20260409084241.php | 219 --- .../views/user/home.blade_20260409084317.php | 200 --- .../views/user/home.blade_20260409084320.php | 220 --- .../views/user/home.blade_20260409084334.php | 200 --- .../views/user/home.blade_20260409084339.php | 198 --- .../views/user/home.blade_20260409084343.php | 149 -- .../views/user/home.blade_20260409084347.php | 198 --- .../views/user/home.blade_20260409084403.php | 198 --- .../views/user/home.blade_20260409084423.php | 198 --- .../views/user/home.blade_20260409084631.php | 161 -- .../views/user/home.blade_20260409084644.php | 161 -- .../views/user/home.blade_20260409084752.php | 161 -- .../views/user/home.blade_20260409084756.php | 161 -- .../views/user/home.blade_20260409085143.php | 156 -- .../views/user/home.blade_20260409085651.php | 169 -- .../views/user/home.blade_20260409085656.php | 169 -- .../views/user/home.blade_20260409085657.php | 169 -- .../views/user/home.blade_20260409091423.php | 169 -- .../views/user/home.blade_20260409091428.php | 169 -- .../views/user/home.blade_20260409113728.php | 224 --- .../views/user/home.blade_20260409113734.php | 224 --- .../views/user/home.blade_20260409113806.php | 249 --- .../views/user/home.blade_20260410130657.php | 251 --- .../views/user/home.blade_20260410131005.php | 258 --- .../views/user/home.blade_20260410131010.php | 258 --- .../views/user/home.blade_20260410131034.php | 256 --- .../views/user/home.blade_20260410131035.php | 256 --- .../views/user/home.blade_20260410131042.php | 257 --- .../views/user/home.blade_20260410131055.php | 257 --- .../views/user/home.blade_20260410161121.php | 259 --- .../views/user/home.blade_20260410161134.php | 259 --- .../views/user/home.blade_20260410161155.php | 259 --- .../views/user/home.blade_20260410161158.php | 259 --- .../views/user/home.blade_20260410161214.php | 346 ---- .../views/user/home.blade_20260410161241.php | 370 ----- .../views/user/home.blade_20260410161426.php | 371 ----- .../views/user/home.blade_20260410161444.php | 427 ----- .../views/user/home.blade_20260410162129.php | 426 ----- .../views/user/home.blade_20260410162143.php | 465 ------ .../views/user/home.blade_20260410162510.php | 465 ------ .../views/user/home.blade_20260410162512.php | 465 ------ .../views/user/home.blade_20260410162515.php | 465 ------ .../views/user/home.blade_20260410162516.php | 426 ----- .../views/user/home.blade_20260410162518.php | 425 ----- .../views/user/home.blade_20260410162547.php | 403 ----- .../views/user/home.blade_20260410162626.php | 425 ----- .../views/user/home.blade_20260410162652.php | 401 ----- .../views/user/home.blade_20260410162703.php | 425 ----- .../views/user/home.blade_20260410162712.php | 426 ----- .../views/user/home.blade_20260410162717.php | 401 ----- .../views/user/home.blade_20260410162734.php | 425 ----- .../views/user/home.blade_20260410162736.php | 426 ----- .../views/user/home.blade_20260410162746.php | 401 ----- .../views/user/home.blade_20260410162750.php | 425 ----- .../views/user/home.blade_20260410162752.php | 401 ----- .../views/user/home.blade_20260410162753.php | 425 ----- .../views/user/home.blade_20260410162950.php | 417 ----- .../views/user/home.blade_20260413200257.php | 205 --- .../views/user/home.blade_20260413200732.php | 224 --- .../views/user/home.blade_20260413200736.php | 224 --- .../views/user/home.blade_20260413200851.php | 207 --- .../views/user/home.blade_20260413200853.php | 205 --- .../views/user/home.blade_20260413200911.php | 207 --- .../views/user/home.blade_20260413200921.php | 224 --- .../views/user/home.blade_20260413200927.php | 224 --- .../views/user/home.blade_20260413201217.php | 226 --- .../views/user/home.blade_20260413201303.php | 226 --- .../views/user/home.blade_20260413201311.php | 253 --- .../views/user/home.blade_20260413201317.php | 253 --- .../views/user/home.blade_20260413203520.php | 253 --- .../views/user/home.blade_20260413203532.php | 254 --- .../views/user/home.blade_20260413203533.php | 253 --- .../views/user/home.blade_20260413232706.php | 304 ---- .../views/user/home.blade_20260414000329.php | 304 ---- .../views/user/home.blade_20260414000350.php | 304 ---- .../views/user/home.blade_20260414000728.php | 304 ---- .../views/user/home.blade_20260414001059.php | 319 ---- .../views/user/home.blade_20260414001125.php | 326 ---- .../views/user/home.blade_20260414001126.php | 327 ---- .../views/user/home.blade_20260414143612.php | 342 ---- .../views/user/home.blade_20260414143613.php | 342 ---- .../views/user/home.blade_20260414143716.php | 342 ---- .../views/user/home.blade_20260414144013.php | 342 ---- .../views/user/home.blade_20260414144023.php | 342 ---- .../views/user/home.blade_20260414144025.php | 342 ---- .../views/user/home.blade_20260414144110.php | 342 ---- .../views/user/home.blade_20260414144906.php | 342 ---- .../views/user/home.blade_20260414145001.php | 342 ---- .../views/user/home.blade_20260414145006.php | 342 ---- .../views/user/home.blade_20260414145007.php | 342 ---- .../views/user/home.blade_20260414145012.php | 341 ---- .../views/user/home.blade_20260414145340.php | 341 ---- .../views/user/home.blade_20260414204605.php | 391 ----- .../views/user/home.blade_20260414204607.php | 392 ----- .../views/user/home.blade_20260414204626.php | 407 ----- .../views/user/home.blade_20260414204627.php | 407 ----- .../views/user/home.blade_20260414205218.php | 410 ----- .../views/user/home.blade_20260414205256.php | 414 ----- .../views/user/home.blade_20260414205257.php | 414 ----- .../views/user/home.blade_20260414210417.php | 414 ----- .../views/user/home.blade_20260414215013.php | 416 ----- .../views/user/home.blade_20260414215015.php | 416 ----- .../views/user/home.blade_20260414215032.php | 427 ----- .../views/user/home.blade_20260414215036.php | 418 ----- .../views/user/home.blade_20260414215045.php | 426 ----- .../views/user/home.blade_20260414215330.php | 447 ----- .../views/user/home.blade_20260414215339.php | 465 ------ .../views/user/home.blade_20260414220053.php | 470 ------ .../views/user/home.blade_20260414223610.php | 428 ----- .../views/user/home.blade_20260414223641.php | 438 ----- .../views/user/home.blade_20260414223702.php | 470 ------ .../views/user/home.blade_20260414223735.php | 489 ------ .../views/user/home.blade_20260414223736.php | 488 ------ .../views/user/home.blade_20260414224020.php | 499 ------ .../views/user/home.blade_20260414224132.php | 500 ------ .../views/user/home.blade_20260414224135.php | 499 ------ .../views/user/home.blade_20260414224219.php | 503 ------ .../views/user/home.blade_20260414224446.php | 485 ------ .../views/user/home.blade_20260414224523.php | 486 ------ .../views/user/home.blade_20260414224525.php | 498 ------ .../views/user/home.blade_20260414224528.php | 498 ------ .../views/user/home.blade_20260414224603.php | 498 ------ .../views/user/home.blade_20260414224835.php | 502 ------ .../views/user/home.blade_20260414224836.php | 502 ------ .../views/user/home.blade_20260414224854.php | 502 ------ .../views/user/home.blade_20260414224855.php | 502 ------ .../views/user/home.blade_20260414225100.php | 501 ------ .../views/user/home.blade_20260414225104.php | 502 ------ .../views/user/home.blade_20260414225106.php | 501 ------ .../views/user/home.blade_20260414225121.php | 506 ------ .../views/user/home.blade_20260414225122.php | 506 ------ .../views/user/home.blade_20260414225347.php | 500 ------ .../views/user/home.blade_20260414225348.php | 500 ------ .../views/user/home.blade_20260414225414.php | 500 ------ .../views/user/home.blade_20260414225641.php | 505 ------ .../views/user/home.blade_20260414225642.php | 505 ------ .../views/user/home.blade_20260414225837.php | 506 ------ .../views/user/home.blade_20260414225903.php | 504 ------ .../views/user/home.blade_20260414225906.php | 506 ------ .../views/user/home.blade_20260414225908.php | 506 ------ .../views/user/home.blade_20260414225909.php | 504 ------ .../views/user/home.blade_20260414225929.php | 506 ------ .../views/user/home.blade_20260414225936.php | 506 ------ .../views/user/home.blade_20260414230046.php | 505 ------ .../views/user/home.blade_20260414230518.php | 505 ------ .../views/user/home.blade_20260414230519.php | 505 ------ .../views/user/home.blade_20260414230543.php | 509 ------ .../views/user/home.blade_20260414230544.php | 508 ------ .../views/user/home.blade_20260414231055.php | 512 ------ .../views/user/home.blade_20260414231056.php | 509 ------ .../views/user/home.blade_20260414231222.php | 505 ------ .../views/user/home.blade_20260414231248.php | 497 ------ .../views/user/home.blade_20260414231250.php | 497 ------ .../views/user/home.blade_20260414231252.php | 505 ------ .../views/user/home.blade_20260414231258.php | 495 ------ .../views/user/home.blade_20260414231300.php | 495 ------ .../views/user/home.blade_20260414231411.php | 495 ------ .../views/user/home.blade_20260414231503.php | 495 ------ .../views/user/home.blade_20260414231525.php | 499 ------ .../views/user/home.blade_20260414231526.php | 495 ------ .../views/user/home.blade_20260414231530.php | 495 ------ .../views/user/home.blade_20260414231536.php | 495 ------ .../views/user/home.blade_20260414231630.php | 501 ------ .../views/user/home.blade_20260414231631.php | 501 ------ .../views/user/home.blade_20260414233805.php | 502 ------ .../views/user/home.blade_20260414233806.php | 501 ------ .../views/user/home.blade_20260414233822.php | 505 ------ .../views/user/home.blade_20260414233826.php | 501 ------ .../views/user/home.blade_20260414234029.php | 501 ------ .../views/user/home.blade_20260414234138.php | 498 ------ .../views/user/home.blade_20260415000204.php | 517 ------ .../views/user/home.blade_20260415000206.php | 517 ------ .../views/user/home.blade_20260415000207.php | 515 ------ .../views/user/home.blade_20260415000239.php | 516 ------ .../views/user/home.blade_20260415000241.php | 538 ------ .../views/user/home.blade_20260415000259.php | 547 ------ .../views/user/home.blade_20260415000300.php | 547 ------ .../views/user/home.blade_20260415000341.php | 547 ------ .../views/user/home.blade_20260415000355.php | 547 ------ .../views/user/home.blade_20260415000408.php | 547 ------ .../views/user/home.blade_20260415000415.php | 547 ------ .../views/user/home.blade_20260415000452.php | 547 ------ .../views/user/home.blade_20260415000456.php | 547 ------ .../views/user/home.blade_20260415000458.php | 507 ------ .../views/user/home.blade_20260415000533.php | 505 ------ .../views/user/home.blade_20260415000545.php | 505 ------ .../views/user/home.blade_20260415000554.php | 505 ------ .../views/user/home.blade_20260416155527.php | 505 ------ .../views/user/home.blade_20260416160100.php | 505 ------ .../views/user/home.blade_20260416160140.php | 505 ------ .../views/user/home.blade_20260416160145.php | 505 ------ .../views/user/home.blade_20260416193226.php | 511 ------ .../views/user/home.blade_20260416193227.php | 511 ------ .../informasi/detail.blade_20260414204931.php | 0 .../informasi/detail.blade_20260414204941.php | 23 - .../user/iuran/index.blade_20260408161200.php | 0 .../user/iuran/index.blade_20260408161215.php | 1 - .../user/iuran/index.blade_20260408161216.php | 1 - .../user/iuran/index.blade_20260408161217.php | 1 - .../user/iuran/index.blade_20260408161218.php | 2 - .../user/iuran/index.blade_20260408161227.php | 2 - .../user/iuran/index.blade_20260408161230.php | 2 - .../user/iuran/index.blade_20260408161231.php | 3 - .../user/iuran/index.blade_20260408161235.php | 3 - .../user/iuran/index.blade_20260408161237.php | 4 - .../user/iuran/index.blade_20260408161244.php | 26 - .../user/iuran/index.blade_20260408164352.php | 26 - .../user/iuran/index.blade_20260408164355.php | 26 - .../user/iuran/index.blade_20260408165911.php | 26 - .../user/iuran/index.blade_20260408165915.php | 26 - .../user/iuran/index.blade_20260408171243.php | 27 - .../user/iuran/index.blade_20260408171244.php | 33 - .../user/iuran/index.blade_20260408171249.php | 33 - .../user/iuran/index.blade_20260408171307.php | 33 - .../user/iuran/index.blade_20260408171310.php | 26 - .../user/iuran/index.blade_20260408171822.php | 41 - .../user/iuran/index.blade_20260408173634.php | 29 - .../user/iuran/index.blade_20260408173651.php | 41 - .../user/iuran/index.blade_20260408183125.php | 65 - .../user/iuran/index.blade_20260408183929.php | 65 - .../user/iuran/index.blade_20260408183933.php | 65 - .../user/iuran/index.blade_20260408191356.php | 66 - .../user/iuran/index.blade_20260408191357.php | 66 - .../user/iuran/index.blade_20260408191359.php | 65 - .../user/iuran/index.blade_20260408191411.php | 66 - .../user/iuran/index.blade_20260408191414.php | 66 - .../user/iuran/index.blade_20260408213349.php | 73 - .../user/iuran/index.blade_20260408215425.php | 73 - .../user/iuran/index.blade_20260408215535.php | 73 - .../user/iuran/index.blade_20260408215540.php | 66 - .../user/iuran/index.blade_20260408215615.php | 73 - .../user/iuran/index.blade_20260408215623.php | 66 - .../user/iuran/index.blade_20260408215625.php | 73 - .../user/iuran/index.blade_20260408215629.php | 66 - .../user/iuran/index.blade_20260408215642.php | 73 - .../user/iuran/index.blade_20260408215649.php | 73 - .../user/iuran/index.blade_20260408215652.php | 66 - .../user/iuran/index.blade_20260408215655.php | 73 - .../user/iuran/index.blade_20260408215657.php | 74 - .../user/iuran/index.blade_20260408215701.php | 66 - .../user/iuran/index.blade_20260408215703.php | 66 - .../user/iuran/index.blade_20260408215705.php | 73 - .../user/iuran/index.blade_20260408215906.php | 50 - .../user/iuran/index.blade_20260408215943.php | 50 - .../user/iuran/index.blade_20260408215951.php | 73 - .../user/iuran/index.blade_20260408215956.php | 50 - .../user/iuran/index.blade_20260408220002.php | 50 - .../user/iuran/index.blade_20260408220004.php | 50 - .../user/iuran/index.blade_20260408220005.php | 73 - .../user/iuran/index.blade_20260408220012.php | 50 - .../user/iuran/index.blade_20260408220017.php | 50 - .../user/iuran/index.blade_20260408220021.php | 50 - .../user/iuran/index.blade_20260408220035.php | 50 - .../user/iuran/index.blade_20260408220037.php | 73 - .../user/iuran/index.blade_20260408220042.php | 50 - .../user/iuran/index.blade_20260408220044.php | 73 - .../user/iuran/index.blade_20260408220046.php | 50 - .../user/iuran/index.blade_20260408220240.php | 73 - .../user/iuran/index.blade_20260408220326.php | 78 - .../user/iuran/index.blade_20260408220330.php | 78 - .../user/iuran/index.blade_20260410130432.php | 79 - .../user/iuran/index.blade_20260410130603.php | 81 - .../user/iuran/index.blade_20260410130604.php | 85 - .../user/iuran/index.blade_20260410130608.php | 85 - .../user/iuran/index.blade_20260410130842.php | 86 - .../user/iuran/index.blade_20260410130845.php | 86 - .../user/iuran/index.blade_20260410130920.php | 85 - .../iuran/status.blade_20260408161321.php | 0 .../iuran/status.blade_20260408162237.php | 1 - .../iuran/status.blade_20260408162243.php | 1 - .../iuran/status.blade_20260408162244.php | 2 - .../iuran/status.blade_20260408162248.php | 2 - .../iuran/status.blade_20260408162250.php | 2 - .../iuran/status.blade_20260408162253.php | 4 - .../iuran/status.blade_20260408162255.php | 4 - .../iuran/status.blade_20260408162257.php | 32 - .../iuran/status.blade_20260408162540.php | 32 - .../iuran/status.blade_20260408173311.php | 75 - .../iuran/upload.blade_20260408161258.php | 0 .../iuran/upload.blade_20260408162138.php | 12 - .../iuran/upload.blade_20260408162141.php | 0 .../iuran/upload.blade_20260408162143.php | 1 - .../iuran/upload.blade_20260408162204.php | 1 - .../iuran/upload.blade_20260408162206.php | 1 - .../iuran/upload.blade_20260408162207.php | 2 - .../iuran/upload.blade_20260408162209.php | 2 - .../iuran/upload.blade_20260408162210.php | 2 - .../iuran/upload.blade_20260408162212.php | 2 - .../iuran/upload.blade_20260408162213.php | 2 - .../iuran/upload.blade_20260408162214.php | 2 - .../iuran/upload.blade_20260408162216.php | 4 - .../iuran/upload.blade_20260408162218.php | 4 - .../iuran/upload.blade_20260408162220.php | 4 - .../iuran/upload.blade_20260408162222.php | 15 - .../iuran/upload.blade_20260408162339.php | 15 - .../iuran/upload.blade_20260408170019.php | 12 - .../iuran/upload.blade_20260408171845.php | 25 - .../iuran/upload.blade_20260408171902.php | 29 - .../iuran/upload.blade_20260408173738.php | 29 - .../iuran/upload.blade_20260408190621.php | 29 - .../iuran/upload.blade_20260408191427.php | 29 - .../layanan/create.blade_20260410133604.php | 0 .../layanan/create.blade_20260410133611.php | 33 - .../layanan/create.blade_20260410135602.php | 29 - .../layanan/create.blade_20260410141127.php | 47 - .../layanan/create.blade_20260410155728.php | 48 - .../layanan/create.blade_20260410155736.php | 58 - .../layanan/create.blade_20260414004100.php | 59 - .../layanan/create.blade_20260414004417.php | 123 -- .../layanan/create.blade_20260414004419.php | 123 -- .../layanan/create.blade_20260414004421.php | 59 - .../layanan/create.blade_20260414004424.php | 61 - .../layanan/create.blade_20260414004448.php | 68 - .../layanan/status.blade_20260410133618.php | 0 .../layanan/status.blade_20260410133631.php | 71 - .../layanan/status.blade_20260410135611.php | 26 - .../layanan/status.blade_20260410135615.php | 71 - .../layanan/status.blade_20260410135617.php | 26 - .../layanan/status.blade_20260410141140.php | 85 - .../layanan/status.blade_20260410155702.php | 91 - .../layanan/status.blade_20260410155923.php | 91 - .../layanan/status.blade_20260410155924.php | 91 - .../layanan/status.blade_20260410160456.php | 97 -- .../user/pengaduan.blade_20260401112850.php | 0 .../user/pengaduan.blade_20260401112929.php | 7 - .../profile/edit.blade_20260401151547.php | 0 .../profile/edit.blade_20260401151604.php | 86 - .../profile/edit.blade_20260401151812.php | 93 -- .../profile/edit.blade_20260401154105.php | 99 -- .../profile/edit.blade_20260401154111.php | 94 -- .../profile/edit.blade_20260401154114.php | 93 -- .../profile/edit.blade_20260401154117.php | 94 -- .../profile/edit.blade_20260401154118.php | 95 -- .../profile/edit.blade_20260401154123.php | 100 -- .../profile/edit.blade_20260401154127.php | 100 -- .../profile/edit.blade_20260401154131.php | 100 -- .../profile/edit.blade_20260401154133.php | 100 -- .../profile/edit.blade_20260401154134.php | 100 -- .../profile/edit.blade_20260401154136.php | 100 -- .../profile/edit.blade_20260401154151.php | 97 -- .../profile/edit.blade_20260401154155.php | 97 -- .../profile/edit.blade_20260401154333.php | 88 - .../profile/edit.blade_20260401154349.php | 97 -- .../profile/edit.blade_20260401154357.php | 88 - .../profile/edit.blade_20260401154359.php | 94 -- .../profile/edit.blade_20260401154405.php | 139 -- .../profile/edit.blade_20260401155057.php | 142 -- .../profile/edit.blade_20260401155103.php | 142 -- .../profile/edit.blade_20260401160053.php | 145 -- .../profile/edit.blade_20260401160057.php | 145 -- .../profile/edit.blade_20260401160059.php | 145 -- .../profile/edit.blade_20260401160100.php | 145 -- .../profile/edit.blade_20260401160111.php | 146 -- .../profile/edit.blade_20260401160115.php | 145 -- .../profile/edit.blade_20260401160121.php | 145 -- .../profile/edit.blade_20260401160125.php | 145 -- .../views/user/rumah.blade_20260331091101.php | 0 .../views/user/rumah.blade_20260331091132.php | 21 - .../views/user/rumah.blade_20260331111617.php | 127 -- .../views/user/rumah.blade_20260331111620.php | 127 -- .../views/user/rumah.blade_20260331111622.php | 21 - .../views/user/rumah.blade_20260331111738.php | 18 - .../views/user/rumah.blade_20260331111740.php | 18 - .../views/user/rumah.blade_20260331111742.php | 21 - .../views/user/rumah.blade_20260331111925.php | 47 - .../views/user/rumah.blade_20260331112800.php | 63 - .../views/user/rumah.blade_20260331113853.php | 64 - .../views/user/rumah.blade_20260331113901.php | 64 - .../views/user/rumah.blade_20260331114046.php | 117 -- .../views/user/rumah.blade_20260331114104.php | 128 -- .../views/user/rumah.blade_20260331115733.php | 130 -- .../views/user/rumah.blade_20260331115736.php | 134 -- .../views/user/rumah.blade_20260331115738.php | 135 -- .../views/user/rumah.blade_20260331115743.php | 135 -- .../views/user/rumah.blade_20260331123602.php | 135 -- .../views/user/rumah.blade_20260331133715.php | 139 -- .../views/user/rumah.blade_20260331133719.php | 139 -- .../views/user/rumah.blade_20260331133721.php | 137 -- .../views/user/rumah.blade_20260331133723.php | 135 -- .../views/user/rumah.blade_20260331154652.php | 123 -- .../views/user/rumah.blade_20260331154657.php | 135 -- .../views/user/rumah.blade_20260331154701.php | 123 -- .../views/user/rumah.blade_20260331154710.php | 123 -- .../views/user/rumah.blade_20260331154750.php | 103 -- .../views/user/rumah.blade_20260331154810.php | 130 -- .../views/user/rumah.blade_20260331160954.php | 135 -- .../views/user/rumah.blade_20260331161437.php | 135 -- .../views/user/rumah.blade_20260331161501.php | 135 -- .../views/user/rumah.blade_20260331161540.php | 142 -- .../views/user/rumah.blade_20260331161930.php | 142 -- .../views/user/rumah.blade_20260331161932.php | 142 -- .../views/user/rumah.blade_20260331162031.php | 144 -- .../views/user/rumah.blade_20260331162035.php | 144 -- .../views/user/rumah.blade_20260331162129.php | 150 -- .../views/user/rumah.blade_20260331162133.php | 150 -- .../views/user/rumah.blade_20260331162246.php | 142 -- .../views/user/rumah.blade_20260331162250.php | 142 -- .../views/user/rumah.blade_20260331162252.php | 135 -- .../views/user/rumah.blade_20260331162253.php | 142 -- .../views/user/rumah.blade_20260331163504.php | 142 -- .../views/user/rumah.blade_20260331163710.php | 150 -- .../views/user/rumah.blade_20260331163717.php | 150 -- .../views/user/rumah.blade_20260331163849.php | 153 -- .../views/user/rumah.blade_20260331163853.php | 153 -- .../views/user/rumah.blade_20260331163921.php | 153 -- .../views/user/rumah.blade_20260331164223.php | 142 -- .../views/user/rumah.blade_20260331164225.php | 142 -- .../views/user/rumah.blade_20260331164226.php | 135 -- .../views/user/rumah.blade_20260331164227.php | 142 -- .../views/user/rumah.blade_20260416160002.php | 85 - .../views/user/rumah.blade_20260416160008.php | 142 -- .../views/user/rumah.blade_20260416160023.php | 130 -- .../views/user/rumah.blade_20260416161002.php | 128 -- .../views/user/rumah.blade_20260416161133.php | 130 -- .../views/user/rumah.blade_20260416161135.php | 135 -- .../views/user/rumah.blade_20260416161136.php | 127 -- .../views/user/rumah.blade_20260416161605.php | 129 -- .../views/user/rumah.blade_20260416161658.php | 162 -- .../views/user/rumah.blade_20260416161719.php | 131 -- .../views/user/rumah.blade_20260416161947.php | 131 -- .../views/user/rumah.blade_20260416162011.php | 132 -- .../views/user/rumah.blade_20260416162012.php | 133 -- .../views/user/rumah.blade_20260416162013.php | 164 -- .../views/user/rumah.blade_20260416162016.php | 162 -- .../views/user/rumah.blade_20260416162354.php | 162 -- .../views/user/rumah.blade_20260416162450.php | 165 -- .../views/user/rumah.blade_20260416162500.php | 167 -- .../views/user/rumah.blade_20260416162511.php | 176 -- .../views/user/rumah.blade_20260416162512.php | 177 -- .../status_pembayara.blade_20260401113433.php | 0 .../status_pembayara.blade_20260401113610.php | 7 - ...status_pembayaran.blade_20260401112430.php | 0 ...status_pembayaran.blade_20260401112549.php | 7 - ...status_pembayaran.blade_20260401113628.php | 7 - .../status_pengaduan.blade_20260401112430.php | 0 .../status_pengaduan.blade_20260401112559.php | 7 - .../statuspengaduan.blade_20260401112910.php | 0 .../statuspengaduan.blade_20260401112949.php | 7 - ...upload_pembayaran.blade_20260401112430.php | 0 ...upload_pembayaran.blade_20260401112539.php | 7 - ...upload_pembayaran.blade_20260401113634.php | 7 - ...upload_pembayaran.blade_20260401113642.php | 7 - .history/routes/web_20260329194301.php | 59 - .history/routes/web_20260329194310.php | 59 - .history/routes/web_20260329194647.php | 60 - .history/routes/web_20260329194652.php | 60 - .history/routes/web_20260329194654.php | 59 - .history/routes/web_20260329194655.php | 59 - .history/routes/web_20260329194657.php | 60 - .history/routes/web_20260329210551.php | 62 - .history/routes/web_20260329210629.php | 76 - .history/routes/web_20260329210646.php | 63 - .history/routes/web_20260329210648.php | 62 - .history/routes/web_20260329210653.php | 63 - .history/routes/web_20260329210655.php | 64 - .history/routes/web_20260329210708.php | 98 -- .history/routes/web_20260329210710.php | 64 - .history/routes/web_20260329210716.php | 76 - .history/routes/web_20260329210813.php | 72 - .history/routes/web_20260329210836.php | 72 - .history/routes/web_20260329211013.php | 72 - .history/routes/web_20260329211015.php | 78 - .history/routes/web_20260329215555.php | 80 - .history/routes/web_20260331001358.php | 82 - .history/routes/web_20260331001547.php | 83 - .history/routes/web_20260331002159.php | 84 - .history/routes/web_20260331002207.php | 84 - .history/routes/web_20260331002210.php | 84 - .history/routes/web_20260331002656.php | 86 - .history/routes/web_20260331002702.php | 86 - .history/routes/web_20260331090427.php | 99 -- .history/routes/web_20260331090549.php | 99 -- .history/routes/web_20260331093427.php | 101 -- .history/routes/web_20260331093428.php | 101 -- .history/routes/web_20260331094525.php | 97 -- .history/routes/web_20260331094530.php | 95 -- .history/routes/web_20260331111718.php | 97 -- .history/routes/web_20260331114254.php | 98 -- .history/routes/web_20260331114255.php | 99 -- .history/routes/web_20260331123859.php | 101 -- .history/routes/web_20260331154447.php | 103 -- .history/routes/web_20260331171822.php | 105 -- .history/routes/web_20260331172636.php | 104 -- .history/routes/web_20260331172703.php | 105 -- .history/routes/web_20260331173014.php | 105 -- .history/routes/web_20260331173203.php | 108 -- .history/routes/web_20260331173207.php | 108 -- .history/routes/web_20260331173212.php | 108 -- .history/routes/web_20260331173601.php | 105 -- .history/routes/web_20260331173602.php | 105 -- .history/routes/web_20260331173603.php | 104 -- .history/routes/web_20260331173606.php | 103 -- .history/routes/web_20260331173608.php | 105 -- .history/routes/web_20260331173610.php | 104 -- .history/routes/web_20260331173611.php | 105 -- .history/routes/web_20260331173616.php | 103 -- .history/routes/web_20260331173621.php | 105 -- .history/routes/web_20260331173622.php | 106 -- .history/routes/web_20260331174333.php | 106 -- .history/routes/web_20260331174929.php | 107 -- .history/routes/web_20260331174930.php | 107 -- .history/routes/web_20260331174936.php | 108 -- .history/routes/web_20260331174938.php | 107 -- .history/routes/web_20260331175056.php | 107 -- .history/routes/web_20260331175058.php | 107 -- .history/routes/web_20260331175112.php | 107 -- .history/routes/web_20260331175113.php | 107 -- .history/routes/web_20260331175116.php | 105 -- .history/routes/web_20260331175121.php | 107 -- .history/routes/web_20260331235916.php | 107 -- .history/routes/web_20260331235918.php | 107 -- .history/routes/web_20260331235920.php | 107 -- .history/routes/web_20260331235921.php | 107 -- .history/routes/web_20260331235922.php | 107 -- .history/routes/web_20260331235925.php | 107 -- .history/routes/web_20260331235926.php | 107 -- .history/routes/web_20260331235928.php | 107 -- .history/routes/web_20260401000230.php | 128 -- .history/routes/web_20260401105604.php | 140 -- .history/routes/web_20260401105610.php | 140 -- .history/routes/web_20260401113248.php | 140 -- .history/routes/web_20260401113250.php | 140 -- .history/routes/web_20260401140634.php | 142 -- .history/routes/web_20260401140639.php | 142 -- .history/routes/web_20260401140640.php | 142 -- .history/routes/web_20260401140641.php | 142 -- .history/routes/web_20260401140644.php | 145 -- .history/routes/web_20260401140651.php | 145 -- .history/routes/web_20260401140657.php | 144 -- .history/routes/web_20260401140700.php | 143 -- .history/routes/web_20260401140707.php | 144 -- .history/routes/web_20260401140952.php | 144 -- .history/routes/web_20260401140955.php | 153 -- .history/routes/web_20260401141001.php | 153 -- .history/routes/web_20260401141011.php | 154 -- .history/routes/web_20260401141012.php | 154 -- .history/routes/web_20260401141014.php | 154 -- .history/routes/web_20260401141016.php | 155 -- .history/routes/web_20260401141627.php | 155 -- .history/routes/web_20260401141629.php | 155 -- .history/routes/web_20260401141644.php | 155 -- .history/routes/web_20260401141649.php | 155 -- .history/routes/web_20260401142638.php | 159 -- .history/routes/web_20260401144037.php | 161 -- .history/routes/web_20260401144040.php | 161 -- .history/routes/web_20260401144615.php | 161 -- .history/routes/web_20260401144617.php | 161 -- .history/routes/web_20260401144619.php | 161 -- .history/routes/web_20260401144621.php | 161 -- .history/routes/web_20260401145414.php | 162 -- .history/routes/web_20260401145728.php | 162 -- .history/routes/web_20260401155125.php | 164 -- .history/routes/web_20260401155126.php | 164 -- .history/routes/web_20260401155130.php | 165 -- .history/routes/web_20260401155138.php | 166 -- .history/routes/web_20260401155140.php | 166 -- .history/routes/web_20260401233028.php | 166 -- .history/routes/web_20260401233049.php | 166 -- .history/routes/web_20260401233050.php | 166 -- .history/routes/web_20260401233052.php | 166 -- .history/routes/web_20260401233140.php | 168 -- .history/routes/web_20260401233144.php | 168 -- .history/routes/web_20260401233147.php | 168 -- .history/routes/web_20260401233150.php | 168 -- .history/routes/web_20260401233412.php | 168 -- .history/routes/web_20260401235702.php | 168 -- .history/routes/web_20260408160841.php | 166 -- .history/routes/web_20260408160856.php | 168 -- .history/routes/web_20260408160907.php | 173 -- .history/routes/web_20260408160952.php | 174 -- .history/routes/web_20260408162712.php | 175 -- .history/routes/web_20260408164023.php | 175 -- .history/routes/web_20260408164027.php | 175 -- .history/routes/web_20260408164935.php | 176 -- .history/routes/web_20260408164947.php | 175 -- .history/routes/web_20260408165022.php | 175 -- .history/routes/web_20260408165034.php | 175 -- .history/routes/web_20260408165038.php | 175 -- .history/routes/web_20260408165042.php | 175 -- .history/routes/web_20260408165708.php | 179 -- .history/routes/web_20260408165710.php | 179 -- .history/routes/web_20260408165725.php | 175 -- .history/routes/web_20260408165732.php | 175 -- .history/routes/web_20260408165734.php | 175 -- .history/routes/web_20260408165741.php | 175 -- .history/routes/web_20260408165742.php | 175 -- .history/routes/web_20260408165748.php | 175 -- .history/routes/web_20260408165820.php | 179 -- .history/routes/web_20260408165823.php | 179 -- .history/routes/web_20260408171018.php | 179 -- .history/routes/web_20260408171708.php | 179 -- .history/routes/web_20260408182917.php | 189 --- .history/routes/web_20260408184452.php | 191 --- .history/routes/web_20260408184458.php | 189 --- .history/routes/web_20260408185819.php | 191 --- .history/routes/web_20260408190308.php | 199 --- .history/routes/web_20260408190318.php | 199 --- .history/routes/web_20260408191233.php | 200 --- .history/routes/web_20260409083139.php | 203 --- .history/routes/web_20260409085728.php | 203 --- .history/routes/web_20260409114110.php | 202 --- .history/routes/web_20260409114112.php | 203 --- .history/routes/web_20260410133459.php | 214 --- .history/routes/web_20260410133507.php | 214 --- .history/routes/web_20260410133518.php | 214 --- .history/routes/web_20260410135527.php | 225 --- .history/routes/web_20260410135529.php | 214 --- .history/routes/web_20260410135544.php | 214 --- .history/routes/web_20260410135546.php | 214 --- .history/routes/web_20260413214555.php | 216 --- .history/routes/web_20260413230024.php | 215 --- .history/routes/web_20260413230025.php | 215 --- .history/routes/web_20260413230026.php | 215 --- .history/routes/web_20260413230029.php | 215 --- .history/routes/web_20260413230157.php | 216 --- .history/routes/web_20260413230514.php | 220 --- .history/routes/web_20260413230518.php | 220 --- .history/routes/web_20260413230710.php | 218 --- .history/routes/web_20260413230722.php | 220 --- .history/routes/web_20260413230741.php | 217 --- .history/routes/web_20260413230743.php | 220 --- .history/routes/web_20260413230747.php | 220 --- .history/routes/web_20260413230849.php | 219 --- .history/routes/web_20260413230852.php | 219 --- .history/routes/web_20260413231049.php | 220 --- .history/routes/web_20260413231612.php | 220 --- .history/routes/web_20260413231613.php | 220 --- .history/routes/web_20260413232943.php | 225 --- .history/routes/web_20260414000303.php | 225 --- .history/routes/web_20260414000656.php | 225 --- .history/routes/web_20260414004643.php | 225 --- .history/routes/web_20260414004644.php | 225 --- .history/routes/web_20260414143646.php | 228 --- .history/routes/web_20260414143651.php | 227 --- .history/routes/web_20260414143658.php | 228 --- .history/routes/web_20260414143704.php | 228 --- .history/routes/web_20260414144053.php | 228 --- .history/routes/web_20260414144059.php | 228 --- .history/routes/web_20260414144853.php | 228 --- .history/routes/web_20260414144856.php | 228 --- .history/routes/web_20260414203600.php | 228 --- .history/routes/web_20260414203609.php | 230 --- .history/routes/web_20260414203631.php | 228 --- .history/routes/web_20260414203637.php | 228 --- .history/routes/web_20260414203641.php | 297 ---- .history/routes/web_20260414203643.php | 230 --- .history/routes/web_20260414203646.php | 230 --- .history/routes/web_20260414204750.php | 232 --- .history/routes/web_20260414204754.php | 231 --- .history/routes/web_20260414205752.php | 232 --- .history/routes/web_20260414220548.php | 234 --- .history/routes/web_20260414220555.php | 234 --- .history/routes/web_20260414220643.php | 232 --- .history/routes/web_20260414220652.php | 228 --- .history/routes/web_20260414220717.php | 234 --- .history/routes/web_20260414220720.php | 228 --- .history/routes/web_20260414220742.php | 230 --- .history/routes/web_20260414220743.php | 236 --- .history/routes/web_20260414220750.php | 236 --- .history/routes/web_20260414220835.php | 246 --- .history/routes/web_20260414220840.php | 246 --- .history/routes/web_20260414220843.php | 246 --- .history/routes/web_20260414220936.php | 250 --- .history/routes/web_20260414220939.php | 250 --- .history/routes/web_20260414222025.php | 238 --- .history/routes/web_20260414222028.php | 238 --- .history/routes/web_20260414222030.php | 238 --- .history/routes/web_20260414222130.php | 238 --- .history/routes/web_20260414222136.php | 238 --- .history/routes/web_20260416102946.php | 248 --- .history/routes/web_20260416102950.php | 248 --- .history/routes/web_20260416104152.php | 251 --- .history/routes/web_20260416104159.php | 251 --- .history/routes/web_20260416104204.php | 250 --- .history/routes/web_20260416104621.php | 257 --- .history/routes/web_20260416104625.php | 257 --- .history/routes/web_20260416121315.php | 260 --- .history/routes/web_20260416165914.php | 261 --- .history/routes/web_20260416165916.php | 262 --- .history/routes/web_20260416194640.php | 267 --- .history/routes/web_20260416194813.php | 272 --- .history/routes/web_20260416194817.php | 272 --- .history/routes/web_20260417145815.php | 282 ---- .history/routes/web_20260417150818.php | 274 --- .history/routes/web_20260417150820.php | 281 ---- .history/routes/web_20260417154930.php | 300 ---- .history/routes/web_20260417154932.php | 283 ---- .history/routes/web_20260417154936.php | 285 ---- .history/routes/web_20260417155302.php | 285 ---- .history/routes/web_20260417155455.php | 286 ---- .history/routes/web_20260417155604.php | 286 ---- .history/routes/web_20260417155606.php | 285 ---- .history/routes/web_20260417155609.php | 286 ---- .history/routes/web_20260417155631.php | 285 ---- .history/routes/web_20260417160952.php | 285 ---- .history/routes/web_20260417161539.php | 286 ---- .history/routes/web_20260417161545.php | 286 ---- .history/routes/web_20260417161548.php | 285 ---- .history/routes/web_20260417161549.php | 286 ---- .history/routes/web_20260417161552.php | 286 ---- .history/routes/web_20260417161602.php | 286 ---- .history/routes/web_20260417161605.php | 286 ---- .history/routes/web_20260417161607.php | 286 ---- .history/routes/web_20260417162349.php | 286 ---- app/Http/Controllers/Admin/UserController.php | 42 + app/Http/Controllers/AuthController.php | 47 +- app/Http/Controllers/IuranController.php | 187 ++- app/Http/Controllers/LaporanController.php | 57 +- app/Http/Controllers/LayananController.php | 73 +- app/Http/Controllers/PenghuniController.php | 243 ++- app/Http/Controllers/ProfileController.php | 138 ++ app/Http/Controllers/UserController.php | 303 ++-- app/Http/Controllers/dashboardController.php | 105 +- app/Models/Iuran.php | 1 + app/Models/Penghuni.php | 4 +- app/Models/Rumah.php | 6 + app/Models/User.php | 5 + .../2025_08_19_020000_create_rumah_table.php | 2 + ...025_08_19_031832_create_penghuni_table.php | 2 + .../2025_08_26_013910_create_iuran_table.php | 24 +- database/seeders/DatabaseSeeder.php | 1 + public/bukti/1776512964.png | Bin 0 -> 249498 bytes public/bukti/1776513030.png | Bin 0 -> 249498 bytes public/bukti/1776785664.jpeg | Bin 0 -> 164414 bytes public/bukti/1776787153.jpeg | Bin 0 -> 164414 bytes public/bukti/1776930601.png | Bin 0 -> 438264 bytes public/bukti/1776975196.png | Bin 0 -> 438264 bytes public/bukti/1777990019.png | Bin 0 -> 377610 bytes public/foto_rumah/1776563830.png | Bin 0 -> 21048 bytes public/foto_rumah/1776564363.jpeg | Bin 0 -> 164414 bytes public/foto_rumah/1776684339.jpeg | Bin 0 -> 164414 bytes public/foto_rumah/1776684407.jpeg | Bin 0 -> 164414 bytes public/foto_rumah/1776685831.jpeg | Bin 0 -> 164414 bytes public/informasi/1776847644.png | Bin 0 -> 21048 bytes public/informasi/1777959481.jpg | Bin 0 -> 36650 bytes public/informasi/1777959590.jpg | Bin 0 -> 108766 bytes public/informasi/1777959672.jpg | Bin 0 -> 215421 bytes public/profile/1776517855.png | Bin 0 -> 249498 bytes public/profile/1778066892.jpg | Bin 0 -> 388632 bytes public/profile/1778069422.png | Bin 0 -> 163862 bytes public/tunggal.png | Bin 0 -> 438264 bytes resources/views/admin/dashboard.blade.php | 517 ++++-- .../views/admin/informasi/create.blade.php | 762 ++++++++- .../views/admin/informasi/edit.blade.php | 318 +++- .../views/admin/informasi/index.blade.php | 360 +++- resources/views/admin/iuran/create.blade.php | 511 +++++- resources/views/admin/iuran/index.blade.php | 668 +++++--- resources/views/admin/laporan/cetak.blade.php | 471 ++++++ resources/views/admin/laporan/index.blade.php | 464 +++++- resources/views/admin/layanan/index.blade.php | 633 +++++-- resources/views/admin/penghuni/edit.blade.php | 528 ++++-- .../views/admin/penghuni/index.blade.php | 1224 ++++++++++---- resources/views/admin/user/create.blade.php | 165 ++ resources/views/admin/user/edit.blade.php | 382 ++++- resources/views/admin/user/index.blade.php | 404 ++++- resources/views/auth/forgot.blade.php | 355 +++- resources/views/auth/login.blade.php | 399 ++++- resources/views/auth/otp.blade.php | 356 +++- resources/views/auth/register.blade.php | 369 ++++- resources/views/auth/reset.blade.php | 365 +++- resources/views/components/footer.blade.php | 6 +- .../views/components/sidebar-user.blade.php | 94 +- resources/views/components/sidebar.blade.php | 579 ++++++- .../views/components/sidebar_rt.blade.php | 534 +++++- resources/views/layouts/admin.blade.php | 46 + resources/views/layouts/app.blade.php | 909 ++++++---- resources/views/rt/dashboard.blade.php | 538 +++++- resources/views/rt/penghuni/index.blade.php | 257 ++- resources/views/rt/profile/edit.blade.php | 348 ++++ resources/views/rt/rumah/index.blade.php | 264 +++ resources/views/user/dashboard.blade.php | 367 ++-- resources/views/user/home.blade.php | 1413 +++++++++++----- resources/views/user/iuran/index.blade.php | 308 +++- resources/views/user/iuran/upload.blade.php | 637 ++++++- resources/views/user/layanan/create.blade.php | 661 +++++++- resources/views/user/layanan/status.blade.php | 714 +++++++- resources/views/user/profile/edit.blade.php | 673 +++++++- resources/views/user/rumah.blade.php | 1470 +++++++++++++++-- routes/web.php | 74 +- 2693 files changed, 17060 insertions(+), 474788 deletions(-) delete mode 100644 .history/.env_20260329222722 delete mode 100644 .history/.env_20260409103701 delete mode 100644 .history/.env_20260409103743 delete mode 100644 .history/.env_20260409104307 delete mode 100644 .history/.env_20260413212106 delete mode 100644 .history/.env_20260413212119 delete mode 100644 .history/.env_20260413212130 delete mode 100644 .history/.env_20260414132645 delete mode 100644 .history/.env_20260414132646 delete mode 100644 .history/.env_20260414132717 delete mode 100644 .history/.env_20260414132719 delete mode 100644 .history/.env_20260414132721 delete mode 100644 .history/.env_20260414140458 delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401140452.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401140553.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401144100.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401144444.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401144450.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401144526.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145426.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145427.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145429.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145431.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145432.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145436.php delete mode 100644 .history/app/Http/Controllers/Admin/UserController_20260401145441.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329205003.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329205017.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329205317.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329210317.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329210325.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329231035.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329231046.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260329231300.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260331091231.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260331091824.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260331093208.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260331093226.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260331093606.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260416110900.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260416110906.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260416111106.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260416111109.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260416121633.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260416121635.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417150500.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417150503.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417150514.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417150516.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417150520.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417150522.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151054.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151055.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151107.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151110.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151119.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151123.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151125.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151138.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151140.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151149.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151153.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151202.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151205.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151213.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417151218.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417153713.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417153721.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417153734.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417153736.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417153737.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417160012.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417160016.php delete mode 100644 .history/app/Http/Controllers/AuthController_20260417160457.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401135428.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401135715.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401141303.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401141305.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401141311.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401141553.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401141609.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142448.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142449.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142452.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142457.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142740.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142742.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260401142743.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203115.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203219.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203224.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203237.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203242.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203244.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414203254.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414204838.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414204844.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205457.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205501.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205528.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205530.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205532.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205534.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205535.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205537.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205545.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205551.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205608.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205612.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205622.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414205624.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210047.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210049.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210050.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210118.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210247.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210253.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210306.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414210307.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414212011.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414212013.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414212132.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414222353.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414222358.php delete mode 100644 .history/app/Http/Controllers/InformasiController_20260414222454.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401133728.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401134020.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401134024.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401134035.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401134038.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401134045.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401134159.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401214908.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401230445.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401230452.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401231508.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401231509.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401232213.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401233500.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401233505.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401233508.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234230.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234231.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234232.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234240.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234745.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234807.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234842.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234941.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234944.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234948.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401234950.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401235507.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401235508.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401235509.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260401235522.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408162653.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408171049.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408171058.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408171105.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408171145.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408183056.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408183100.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408191457.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260408191503.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260409101616.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260409101627.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260409103436.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260409103508.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260409103549.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260409103556.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260416103015.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260416103016.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260416103020.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260416121252.php delete mode 100644 .history/app/Http/Controllers/IuranController_20260416121253.php delete mode 100644 .history/app/Http/Controllers/LaporanController_20260401140018.php delete mode 100644 .history/app/Http/Controllers/LaporanController_20260401140159.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260329194558.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260329194631.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260329201010.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260329201014.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135238.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135243.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135345.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135352.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135404.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135406.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135415.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135417.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135425.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260410135430.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413212930.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413213000.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413213007.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413234812.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413234815.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413234817.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260413234821.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414134731.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414134735.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414134800.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414134803.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414134805.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414134807.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135005.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135023.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135109.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135113.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135615.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135931.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135933.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135939.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414135943.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414140721.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414140728.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414140729.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414140739.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414141024.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260414142202.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416103050.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416103056.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416163826.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416163840.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416163859.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416163903.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416163916.php delete mode 100644 .history/app/Http/Controllers/LayananController_20260416163921.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151633.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151651.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151653.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151654.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151659.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151701.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151705.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151708.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151711.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151718.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151720.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151724.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151731.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401151858.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152210.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152213.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152345.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152346.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152348.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152350.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152354.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401152356.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153749.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153751.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153753.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153758.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153759.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153940.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153946.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401153959.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401154004.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401154005.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401154009.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401154017.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401155201.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401155209.php delete mode 100644 .history/app/Http/Controllers/ProfileController_20260401155220.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331090519.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331090523.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331094633.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331094635.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331094703.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331094707.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331100106.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331111639.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331112731.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331112736.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331114133.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331114143.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331115635.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331115638.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331123821.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331123826.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331124234.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331124240.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331125522.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331125525.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331125528.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331125531.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331125532.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331133422.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331133431.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331141250.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331141435.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331153727.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331153735.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154251.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154255.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154301.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154302.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154307.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154333.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154340.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154349.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154357.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331154419.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331155249.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331164755.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331164813.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331164815.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331164825.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331171727.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331171730.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331171737.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331171746.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331173823.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331173825.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331175154.php delete mode 100644 .history/app/Http/Controllers/UserController_20260331175205.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401105632.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401105634.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401105642.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401152452.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401152502.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401152917.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401153805.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401153807.php delete mode 100644 .history/app/Http/Controllers/UserController_20260401153809.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408163211.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408163226.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408194012.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408194015.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408194020.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408194025.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408213245.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408213249.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408213750.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408213754.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408213800.php delete mode 100644 .history/app/Http/Controllers/UserController_20260408213803.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409092121.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409092125.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409105935.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409105939.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409110003.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409110009.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409110845.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409110852.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409110855.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409112716.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409112723.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409112936.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409113306.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409114422.php delete mode 100644 .history/app/Http/Controllers/UserController_20260409114426.php delete mode 100644 .history/app/Http/Controllers/UserController_20260413234959.php delete mode 100644 .history/app/Http/Controllers/UserController_20260413235343.php delete mode 100644 .history/app/Http/Controllers/UserController_20260413235436.php delete mode 100644 .history/app/Http/Controllers/UserController_20260413235557.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414000512.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414000514.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414000526.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414000531.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414000535.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414000546.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414001716.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414001722.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414001732.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414001747.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414001853.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002126.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002128.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002228.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002234.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002250.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002556.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002616.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414002831.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414003138.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414003411.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414003422.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414003707.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414003721.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414003722.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414144603.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414144629.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414144635.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414144654.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145213.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145215.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145407.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145409.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145411.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145420.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414145424.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414214139.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414214143.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414214200.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414222428.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414222433.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414222438.php delete mode 100644 .history/app/Http/Controllers/UserController_20260414222439.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416184440.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416185230.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416185231.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416185235.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416185237.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190231.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190303.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190314.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190328.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190344.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190402.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190405.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190649.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190652.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190656.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416190701.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416193006.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416193010.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416193013.php delete mode 100644 .history/app/Http/Controllers/UserController_20260416193034.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408161026.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408161049.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408161050.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408161052.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408161054.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408161059.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408162009.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408162015.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408162608.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408162613.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408162638.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408162640.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408165949.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408165953.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408171743.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408171745.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408171747.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408172816.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408172821.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408172836.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408172839.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408183019.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408183020.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408183023.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408183029.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408190403.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408190404.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408190410.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408190413.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408190436.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260408190446.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409083211.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409083218.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409083521.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409083526.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409090337.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409090340.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409090343.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409090513.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409090516.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409091203.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260409091210.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260416200440.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260416200445.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260416200450.php delete mode 100644 .history/app/Http/Controllers/UserIuranController_20260416200453.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260410133357.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260410133416.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260410135210.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260410140954.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260410141044.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260410141046.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414004528.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414004549.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414004552.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143748.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143756.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143800.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143801.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143806.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143808.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143811.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143812.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143819.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143822.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143917.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143924.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143940.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414143943.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414144343.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414144349.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414144712.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414144716.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414145445.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260414145448.php delete mode 100644 .history/app/Http/Controllers/UserLayananController_20260416194233.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250815103235.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819085145.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819085148.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819085153.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819085155.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819085402.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819085405.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819091555.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819091558.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819091602.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819091604.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152558.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152622.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152629.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152632.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152641.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152643.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152648.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152716.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819152931.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153031.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153033.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153035.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153039.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153053.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153101.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153102.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153103.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153104.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153107.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153116.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153117.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153146.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153148.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153154.php delete mode 100644 .history/app/Http/Controllers/dashboardController_20250819153351.php delete mode 100644 .history/app/Http/Controllers/homeController_20250815103157.php delete mode 100644 .history/app/Http/Controllers/homeController_20250815103230.php delete mode 100644 .history/app/Http/Controllers/homeController_20250815103232.php delete mode 100644 .history/app/Http/Controllers/homeController_20250815103233.php delete mode 100644 .history/app/Http/Controllers/homeController_20250815103236.php delete mode 100644 .history/app/Http/Controllers/homeController_20250819085839.php delete mode 100644 .history/app/Http/Controllers/homeController_20250819085841.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330202740.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330202745.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330202750.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330202754.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330202800.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330203840.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330203842.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330205309.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330210826.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330210828.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330210834.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211101.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211102.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211104.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211804.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211807.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211838.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211840.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211846.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330211850.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330212128.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330212132.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330212203.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330212208.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330212459.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330212501.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330221935.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330221937.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330221939.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330221954.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330221957.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330221959.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330222002.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330222004.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330235300.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330235315.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330235318.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330235328.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260330235448.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331001053.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331001056.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331001059.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331001319.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331002728.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331002740.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331003451.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331003502.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331003508.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331003519.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331003721.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331003809.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005148.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005151.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005540.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005552.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005605.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005611.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005732.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005839.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005841.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005850.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005857.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331005900.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331010337.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331010355.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012509.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012512.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012514.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012516.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012531.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012533.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012536.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012552.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012554.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012556.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012613.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012648.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012724.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012727.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012829.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012830.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012834.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012839.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012857.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012903.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331012910.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331144622.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331173833.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331174019.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331174021.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331174030.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331174032.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331181212.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331184213.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331235803.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331235810.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331235812.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331235822.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260331235830.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260401002726.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260401002736.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260401002820.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260401002824.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260401103643.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233400.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233401.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233409.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233410.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233456.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233513.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233730.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233732.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233737.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233936.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233938.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233946.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413233948.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234246.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234419.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234425.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234428.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234430.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234437.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234441.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234443.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234448.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234449.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234618.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234628.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234629.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234633.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234635.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234724.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234736.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260413234826.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416165948.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416165951.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416171338.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416171344.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416171525.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416171647.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416171648.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416183725.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416192837.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416192913.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416192917.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416200903.php delete mode 100644 .history/app/Http/Controllers/penghuniController_20260416200906.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416194434.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416194450.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416194516.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416194518.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416194524.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195251.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195254.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195301.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195317.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195322.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195334.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195338.php delete mode 100644 .history/app/Http/Middleware/CekStatusPenghuni_20260416195346.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260331095109.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260331095139.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260331095505.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260331095510.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260416102830.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260416102832.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260416102839.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260416102841.php delete mode 100644 .history/app/Http/Middleware/RoleMiddleware_20260416102844.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212150.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212238.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212245.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212247.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212259.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212303.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212312.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212334.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212336.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212344.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212349.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212454.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212457.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212501.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212711.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212712.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413212720.php delete mode 100644 .history/app/Mail/NotifPengaduan_20260413213026.php delete mode 100644 .history/app/Mail/OtpMail_20260417150839.php delete mode 100644 .history/app/Mail/OtpMail_20260417150917.php delete mode 100644 .history/app/Mail/OtpMail_20260417150926.php delete mode 100644 .history/app/Mail/OtpMail_20260417153454.php delete mode 100644 .history/app/Mail/OtpMail_20260417153457.php delete mode 100644 .history/app/Mail/OtpMail_20260417153459.php delete mode 100644 .history/app/Mail/OtpMail_20260417153502.php delete mode 100644 .history/app/Mail/OtpMail_20260417154104.php delete mode 100644 .history/app/Mail/OtpMail_20260417154107.php delete mode 100644 .history/app/Mail/OtpMail_20260417154110.php delete mode 100644 .history/app/Mail/OtpMail_20260417155118.php delete mode 100644 .history/app/Mail/OtpMail_20260417161416.php delete mode 100644 .history/app/Mail/OtpMail_20260417161418.php delete mode 100644 .history/app/Mail/OtpMail_20260417161421.php delete mode 100644 .history/app/Mail/OtpMail_20260417161422.php delete mode 100644 .history/app/Mail/OtpMail_20260417161427.php delete mode 100644 .history/app/Mail/OtpMail_20260417161431.php delete mode 100644 .history/app/Mail/OtpMail_20260417161708.php delete mode 100644 .history/app/Mail/OtpMail_20260417161710.php delete mode 100644 .history/app/Mail/OtpMail_20260417161717.php delete mode 100644 .history/app/Mail/OtpMail_20260417161718.php delete mode 100644 .history/app/Mail/OtpMail_20260417161921.php delete mode 100644 .history/app/Mail/OtpMail_20260417161933.php delete mode 100644 .history/app/Mail/OtpMail_20260417161944.php delete mode 100644 .history/app/Mail/OtpMail_20260417161947.php delete mode 100644 .history/app/Mail/OtpMail_20260417162154.php delete mode 100644 .history/app/Models/Informasi_20260414202408.php delete mode 100644 .history/app/Models/Informasi_20260414203037.php delete mode 100644 .history/app/Models/Informasi_20260414203038.php delete mode 100644 .history/app/Models/Informasi_20260414203045.php delete mode 100644 .history/app/Models/Iuran_20260401215337.php delete mode 100644 .history/app/Models/Iuran_20260401234041.php delete mode 100644 .history/app/Models/Iuran_20260401234046.php delete mode 100644 .history/app/Models/Layanan_20260329194735.php delete mode 100644 .history/app/Models/Layanan_20260329194926.php delete mode 100644 .history/app/Models/Layanan_20260329200838.php delete mode 100644 .history/app/Models/Layanan_20260329200841.php delete mode 100644 .history/app/Models/Layanan_20260410135155.php delete mode 100644 .history/app/Models/Layanan_20260410135158.php delete mode 100644 .history/app/Models/Layanan_20260410140848.php delete mode 100644 .history/app/Models/Layanan_20260410140849.php delete mode 100644 .history/app/Models/Penghuni_20260331014002.php delete mode 100644 .history/app/Models/Penghuni_20260401002232.php delete mode 100644 .history/app/Models/Penghuni_20260401002236.php delete mode 100644 .history/app/Models/Penghuni_20260410135132.php delete mode 100644 .history/app/Models/Penghuni_20260410135137.php delete mode 100644 .history/app/Models/Penghuni_20260416182746.php delete mode 100644 .history/app/Models/Rumah_20260330205523.php delete mode 100644 .history/app/Models/Rumah_20260330205559.php delete mode 100644 .history/app/Models/Rumah_20260330210440.php delete mode 100644 .history/app/Models/Rumah_20260331084244.php delete mode 100644 .history/app/Models/Rumah_20260331084246.php delete mode 100644 .history/app/Models/Rumah_20260331084612.php delete mode 100644 .history/app/Models/Rumah_20260331165556.php delete mode 100644 .history/app/Models/Rumah_20260331165559.php delete mode 100644 .history/app/Models/Rumah_20260331165601.php delete mode 100644 .history/app/Models/Rumah_20260331165602.php delete mode 100644 .history/app/Models/Rumah_20260401001819.php delete mode 100644 .history/app/Models/Rumah_20260401001827.php delete mode 100644 .history/app/Models/Rumah_20260401002026.php delete mode 100644 .history/app/Models/Rumah_20260401002032.php delete mode 100644 .history/app/Models/User_20240312205242.php delete mode 100644 .history/app/Models/User_20260329231157.php delete mode 100644 .history/app/Models/User_20260329231159.php delete mode 100644 .history/app/Models/User_20260329231213.php delete mode 100644 .history/app/Models/User_20260401101643.php delete mode 100644 .history/app/Models/User_20260401101647.php delete mode 100644 .history/app/Models/User_20260401155038.php delete mode 100644 .history/app/Models/User_20260409090426.php delete mode 100644 .history/app/Models/User_20260409090429.php delete mode 100644 .history/app/Models/User_20260410135042.php delete mode 100644 .history/app/Models/User_20260410135045.php delete mode 100644 .history/bootstrap/app_20240312205242.php delete mode 100644 .history/bootstrap/app_20260331095413.php delete mode 100644 .history/bootstrap/app_20260331095416.php delete mode 100644 .history/bootstrap/app_20260331095417.php delete mode 100644 .history/bootstrap/app_20260331095421.php delete mode 100644 .history/config/app_20240312205242.php delete mode 100644 .history/config/app_20260402000401.php delete mode 100644 .history/config/app_20260402000456.php delete mode 100644 .history/config/app_20260402000458.php delete mode 100644 .history/config/app_20260402000751.php delete mode 100644 .history/config/app_20260402000759.php delete mode 100644 .history/config/app_20260402000802.php delete mode 100644 .history/config/app_20260402000808.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20240312205242.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260329221729.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260329221732.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260329222212.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260401223543.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260417153219.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260417153221.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260417153226.php delete mode 100644 .history/database/migrations/0001_01_01_000000_create_users_table_20260417153230.php delete mode 100644 .history/database/migrations/2025_08_19_020000_create_rumah_table_20260330214539.php delete mode 100644 .history/database/migrations/2025_08_19_020000_create_rumah_table_20260401222355.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213916.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213918.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213919.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213921.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213923.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213928.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214241.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214552.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214600.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214602.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214621.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214623.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214651.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214712.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214714.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214832.php delete mode 100644 .history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214918.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220534.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220541.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220712.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225104.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225105.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225109.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232356.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232358.php delete mode 100644 .history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232400.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195208.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195447.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195450.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195453.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195458.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195502.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195932.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195936.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195939.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195941.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200753.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200755.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200756.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200802.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200805.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200814.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200819.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200823.php delete mode 100644 .history/database/migrations/2026_03_29_125209_create_layanan_table_20260410140812.php delete mode 100644 .history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203252.php delete mode 100644 .history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203321.php delete mode 100644 .history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203322.php delete mode 100644 .history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203324.php delete mode 100644 .history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203333.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330210042.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330210115.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213021.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213024.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213031.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213327.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213334.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213336.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213338.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213346.php delete mode 100644 .history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213631.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212659.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212715.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213732.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213904.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213906.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213908.php delete mode 100644 .history/database/migrations/2026_03_30_142700_create_rumah_table_20260330214540.php delete mode 100644 .history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084145.php delete mode 100644 .history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084215.php delete mode 100644 .history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084218.php delete mode 100644 .history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401154938.php delete mode 100644 .history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155001.php delete mode 100644 .history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155005.php delete mode 100644 .history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155007.php delete mode 100644 .history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155009.php delete mode 100644 .history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202355.php delete mode 100644 .history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202835.php delete mode 100644 .history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202836.php delete mode 100644 .history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202841.php delete mode 100644 .history/resources/views/admin/informasi/create.blade_20260414203935.php delete mode 100644 .history/resources/views/admin/informasi/create.blade_20260414204046.php delete mode 100644 .history/resources/views/admin/informasi/create.blade_20260414204055.php delete mode 100644 .history/resources/views/admin/informasi/edit.blade_20260414203946.php delete mode 100644 .history/resources/views/admin/informasi/edit.blade_20260414204006.php delete mode 100644 .history/resources/views/admin/informasi/edit.blade_20260414204033.php delete mode 100644 .history/resources/views/admin/informasi/edit.blade_20260414204105.php delete mode 100644 .history/resources/views/admin/informasi/index.blade_20260401135926.php delete mode 100644 .history/resources/views/admin/informasi/index.blade_20260414203919.php delete mode 100644 .history/resources/views/admin/informasi/index.blade_20260414203923.php delete mode 100644 .history/resources/views/admin/informasi/index.blade_20260414203927.php delete mode 100644 .history/resources/views/admin/infromasi/index.blade_20260401135923.php delete mode 100644 .history/resources/views/admin/infromasi/index.blade_20260401135927.php delete mode 100644 .history/resources/views/admin/iuran/create.blade_20260401230224.php delete mode 100644 .history/resources/views/admin/iuran/create.blade_20260401235837.php delete mode 100644 .history/resources/views/admin/iuran/create.blade_20260401235838.php delete mode 100644 .history/resources/views/admin/iuran/edit.blade_20260401235410.php delete mode 100644 .history/resources/views/admin/iuran/edit.blade_20260401235855.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230616.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230620.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230706.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230711.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230714.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230730.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230731.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230736.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230738.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230741.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401230742.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401231003.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401232546.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401232550.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401232552.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401232622.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401233123.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401233434.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260401233438.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260402000221.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260402000227.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260402001001.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260402001051.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260402001114.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260402001128.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408171342.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408171347.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408171352.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408171354.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408171356.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408171402.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408172245.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408172252.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408172340.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408172353.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408183206.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408183501.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408183503.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408183507.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408184401.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408184617.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408185037.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408185719.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408185723.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408190722.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408190726.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408190804.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408215115.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260408215130.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260409101700.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260409102024.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260409102038.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103437.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103522.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103523.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103524.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103525.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103526.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103534.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103535.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103604.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103631.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103638.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416103647.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260416164838.php delete mode 100644 .history/resources/views/admin/iuran/index.blade_20260417143850.php delete mode 100644 .history/resources/views/admin/laporan/index.blade_20260401140242.php delete mode 100644 .history/resources/views/admin/laporan/index.blade_20260401140250.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193909.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193925.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193930.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193942.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193944.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193947.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329193952.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329194000.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329194002.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329194003.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329194005.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329194026.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329194029.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260329201345.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141159.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141202.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141217.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141222.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141226.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141229.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260410141231.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214138.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214140.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214143.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214145.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214149.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214308.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214757.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214803.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214814.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214835.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214837.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214840.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413214841.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215101.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215340.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215342.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215350.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215351.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215408.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215412.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215413.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215420.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215421.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215423.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215427.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215433.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215614.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413215932.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220034.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220035.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220157.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220211.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220358.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220400.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220549.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220602.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220603.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220604.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220605.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220606.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220607.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220616.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220618.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220619.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220722.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413220725.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221049.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221050.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221053.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221105.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221325.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221329.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221348.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221400.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221612.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221614.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221619.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221622.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413221623.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223230.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223435.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223635.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223657.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223737.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223744.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223910.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223919.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223924.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223926.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223929.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413223951.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224122.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224146.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224202.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224230.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224526.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224527.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224629.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224630.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224648.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224711.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224716.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224904.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224905.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413224927.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225244.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225303.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225316.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225618.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225723.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225726.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413225730.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413230000.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413230217.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413230218.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413230234.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413230302.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413230925.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231125.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231326.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231525.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231526.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231546.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231559.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413231930.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260413232008.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260414203715.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260414203718.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260414203722.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260414203911.php delete mode 100644 .history/resources/views/admin/layanan/index.blade_20260416104104.php delete mode 100644 .history/resources/views/admin/penghuni/create.blade_20260330211444.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260329215153.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260329215155.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331000512.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331003312.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331003334.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331003335.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331004145.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331004150.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331005052.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331005058.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331011340.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331011403.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331011404.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331011721.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331011745.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331011748.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331013113.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331013159.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331013200.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331013220.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331013225.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331171202.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331171223.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331171951.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331171957.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331172029.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331172108.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331172602.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331172722.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331173250.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331173846.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331174116.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331174130.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331174349.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331175256.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331175323.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331175327.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331175338.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331175902.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331180100.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331180104.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331180128.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331180148.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331180611.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331180637.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182154.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182208.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182210.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182218.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182233.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182234.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182235.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182241.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331182305.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331183222.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260331235425.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401102429.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401102813.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401102825.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401102832.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401102834.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401102839.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401103101.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401103110.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401103119.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401103131.php delete mode 100644 .history/resources/views/admin/penghuni/edit.blade_20260401103215.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330202521.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330211656.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330211700.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330221630.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330221640.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330221854.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330221857.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330231250.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330231906.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330231910.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330232014.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330232017.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330232041.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330232826.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330232828.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233005.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233007.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233253.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233437.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233502.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233509.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233554.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233555.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233604.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233606.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233811.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233820.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233824.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233825.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233827.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233836.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330233847.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330234011.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330235807.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260330235813.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331000257.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331001439.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331001446.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002100.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002102.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002118.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002130.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002132.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002342.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002346.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002351.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002449.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002806.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331002812.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331013503.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331013538.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331141519.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331144001.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260331144021.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401000508.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401002559.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401002609.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401002621.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401002640.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401003014.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401003046.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401003302.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401003443.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401003452.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004414.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004416.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004418.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004424.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004427.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004432.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004551.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004614.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004625.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004626.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004628.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004633.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004714.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401004816.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005124.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005145.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005711.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005712.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005716.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005722.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005727.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005938.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401005944.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010131.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010309.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010315.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010339.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010501.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010525.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010531.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010532.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010805.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010855.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010856.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401010913.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011342.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011347.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011507.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011513.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011523.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011545.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011618.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011623.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011626.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011630.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011639.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011648.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011650.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011658.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401011903.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401094820.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401094825.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095040.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095127.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095129.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095133.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095725.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095745.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095756.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095906.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401095958.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100021.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100025.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100027.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100030.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100031.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100038.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100105.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100108.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100345.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100352.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100850.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100905.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100912.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100919.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260401100922.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260416201103.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260416201109.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260416201110.php delete mode 100644 .history/resources/views/admin/penghuni/index.blade_20260416201111.php delete mode 100644 .history/resources/views/admin/user/edit.blade_20260401143649.php delete mode 100644 .history/resources/views/admin/user/edit.blade_20260401144211.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401140834.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401140838.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143504.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143507.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143512.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143516.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143519.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143520.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143523.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143525.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143526.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143533.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143535.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401143536.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144138.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144141.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144202.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144205.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144207.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144259.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401144303.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401145358.php delete mode 100644 .history/resources/views/admin/user/index.blade_20260401145403.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151531.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151624.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151918.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151920.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151922.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151930.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151933.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151935.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151937.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151938.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151951.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151955.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417151959.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152002.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152032.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152033.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152035.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152039.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152041.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152046.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152048.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152049.php delete mode 100644 .history/resources/views/auth/forgot.blade_20260417152120.php delete mode 100644 .history/resources/views/auth/login.blade_20260329205728.php delete mode 100644 .history/resources/views/auth/login.blade_20260329205944.php delete mode 100644 .history/resources/views/auth/login.blade_20260329210233.php delete mode 100644 .history/resources/views/auth/login.blade_20260417151736.php delete mode 100644 .history/resources/views/auth/login.blade_20260417151739.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417151542.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417151634.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152104.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152107.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152140.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152142.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152144.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152145.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152148.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152151.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152152.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152153.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152200.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152201.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152206.php delete mode 100644 .history/resources/views/auth/otp.blade_20260417152210.php delete mode 100644 .history/resources/views/auth/register.blade_20260329205737.php delete mode 100644 .history/resources/views/auth/register.blade_20260329205951.php delete mode 100644 .history/resources/views/auth/register.blade_20260329210240.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230738.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230740.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230742.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230743.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230745.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230755.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230757.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230805.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230809.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230811.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230813.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230818.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230820.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230825.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230826.php delete mode 100644 .history/resources/views/auth/register.blade_20260329230829.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417151554.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417151707.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152223.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152227.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152234.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152235.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152239.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152240.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152242.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152244.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152245.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152246.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152254.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152300.php delete mode 100644 .history/resources/views/auth/reset.blade_20260417152303.php delete mode 100644 .history/resources/views/components/footer.blade_20250815102405.php delete mode 100644 .history/resources/views/components/footer.blade_20250815102409.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260329214125.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260329214342.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260329232954.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260329233226.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260329233227.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331090743.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331101529.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331103322.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331103344.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331103728.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331103736.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331103737.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331104845.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260331104926.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260401105521.php delete mode 100644 .history/resources/views/components/sidebar-user.blade_20260401105539.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329194110.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329194111.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329194115.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329195002.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329195004.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214221.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214225.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214228.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214230.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214234.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214238.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329214241.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329233411.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260329233438.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141129.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141131.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141135.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141136.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141144.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141145.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141147.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141154.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141156.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141201.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141203.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141510.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141512.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260401141539.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205346.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205352.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205357.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205359.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205403.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205530.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205550.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205556.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413205606.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210014.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210020.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210022.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210036.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210053.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210233.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210239.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210244.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210248.php delete mode 100644 .history/resources/views/components/sidebar.blade_20260413210302.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416105019.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416105028.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416105244.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416105250.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416105311.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416105325.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416121034.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416121430.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416164927.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416170114.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416170115.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416171547.php delete mode 100644 .history/resources/views/components/sidebar_rt.blade_20260416171551.php delete mode 100644 .history/resources/views/components/topbar.blade_20250815102246.php delete mode 100644 .history/resources/views/components/topbar.blade_20250815102250.php delete mode 100644 .history/resources/views/components/topbar.blade_20250815132344.php delete mode 100644 .history/resources/views/components/topbar.blade_20250815132346.php delete mode 100644 .history/resources/views/dashboard.blade_20250815102838.php delete mode 100644 .history/resources/views/dashboard.blade_20250819084906.php delete mode 100644 .history/resources/views/dashboard.blade_20250819084922.php delete mode 100644 .history/resources/views/dashboard.blade_20250819084923.php delete mode 100644 .history/resources/views/dashboard.blade_20250819084935.php delete mode 100644 .history/resources/views/dashboard.blade_20250819084941.php delete mode 100644 .history/resources/views/dashboard.blade_20250819084945.php delete mode 100644 .history/resources/views/dashboard.blade_20250819085052.php delete mode 100644 .history/resources/views/dashboard.blade_20250819092806.php delete mode 100644 .history/resources/views/dashboard.blade_20250819093041.php delete mode 100644 .history/resources/views/dashboard.blade_20250819093056.php delete mode 100644 .history/resources/views/dashboard.blade_20250819093110.php delete mode 100644 .history/resources/views/dashboard.blade_20250819093112.php delete mode 100644 .history/resources/views/dashboard.blade_20250819093338.php delete mode 100644 .history/resources/views/emails/otp.blade_20260417151014.php delete mode 100644 .history/resources/views/emails/otp.blade_20260417151021.php delete mode 100644 .history/resources/views/emails/otp.blade_20260417153609.php delete mode 100644 .history/resources/views/emails/otp.blade_20260417154138.php delete mode 100644 .history/resources/views/emails/pengaduan.blade_20260413212544.php delete mode 100644 .history/resources/views/emails/pengaduan.blade_20260413212554.php delete mode 100644 .history/resources/views/emails/pengaduan.blade_20260414141746.php delete mode 100644 .history/resources/views/home.blade_20250815102542.php delete mode 100644 .history/resources/views/home.blade_20250815102546.php delete mode 100644 .history/resources/views/home.blade_20250815102612.php delete mode 100644 .history/resources/views/home.blade_20250815102614.php delete mode 100644 .history/resources/views/home.blade_20250815102616.php delete mode 100644 .history/resources/views/home.blade_20250815102617.php delete mode 100644 .history/resources/views/home.blade_20250815102621.php delete mode 100644 .history/resources/views/home.blade_20250815102623.php delete mode 100644 .history/resources/views/home.blade_20250815102626.php delete mode 100644 .history/resources/views/home.blade_20250815102628.php delete mode 100644 .history/resources/views/home.blade_20250815102630.php delete mode 100644 .history/resources/views/home.blade_20250815102632.php delete mode 100644 .history/resources/views/home.blade_20250815102634.php delete mode 100644 .history/resources/views/home.blade_20250815102759.php delete mode 100644 .history/resources/views/home.blade_20250815102801.php delete mode 100644 .history/resources/views/home.blade_20250815102803.php delete mode 100644 .history/resources/views/home.blade_20250815102804.php delete mode 100644 .history/resources/views/home.blade_20250815102809.php delete mode 100644 .history/resources/views/home.blade_20250815102820.php delete mode 100644 .history/resources/views/home.blade_20250815102823.php delete mode 100644 .history/resources/views/home.blade_20250815102826.php delete mode 100644 .history/resources/views/home.blade_20250815102828.php delete mode 100644 .history/resources/views/home.blade_20250815102830.php delete mode 100644 .history/resources/views/home.blade_20250815102833.php delete mode 100644 .history/resources/views/home.blade_20250815102836.php delete mode 100644 .history/resources/views/home.blade_20250815102837.php delete mode 100644 .history/resources/views/home.blade_20250815102839.php delete mode 100644 .history/resources/views/home.blade_20250819085924.php delete mode 100644 .history/resources/views/home.blade_20250819085932.php delete mode 100644 .history/resources/views/home.blade_20250819085934.php delete mode 100644 .history/resources/views/home.blade_20250819085946.php delete mode 100644 .history/resources/views/home.blade_20250819090249.php delete mode 100644 .history/resources/views/home.blade_20250819090251.php delete mode 100644 .history/resources/views/home.blade_20250819090254.php delete mode 100644 .history/resources/views/home.blade_20250819090554.php delete mode 100644 .history/resources/views/home.blade_20250819090557.php delete mode 100644 .history/resources/views/home.blade_20250819090604.php delete mode 100644 .history/resources/views/home.blade_20250819090606.php delete mode 100644 .history/resources/views/home.blade_20250819090611.php delete mode 100644 .history/resources/views/home.blade_20250819090612.php delete mode 100644 .history/resources/views/home.blade_20250819090616.php delete mode 100644 .history/resources/views/home.blade_20250819090619.php delete mode 100644 .history/resources/views/home.blade_20250819091136.php delete mode 100644 .history/resources/views/home.blade_20250819091139.php delete mode 100644 .history/resources/views/home.blade_20250819091141.php delete mode 100644 .history/resources/views/home.blade_20250819091145.php delete mode 100644 .history/resources/views/home.blade_20250819091149.php delete mode 100644 .history/resources/views/home.blade_20250819091153.php delete mode 100644 .history/resources/views/home.blade_20250819091154.php delete mode 100644 .history/resources/views/home.blade_20250819091157.php delete mode 100644 .history/resources/views/home.blade_20250819091442.php delete mode 100644 .history/resources/views/home.blade_20250819091444.php delete mode 100644 .history/resources/views/home.blade_20250819091447.php delete mode 100644 .history/resources/views/layouts/app.blade_20260329231746.php delete mode 100644 .history/resources/views/layouts/app.blade_20260329231751.php delete mode 100644 .history/resources/views/layouts/app.blade_20260329231846.php delete mode 100644 .history/resources/views/layouts/app.blade_20260329232645.php delete mode 100644 .history/resources/views/layouts/app.blade_20260329232649.php delete mode 100644 .history/resources/views/layouts/app.blade_20260329233335.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331101601.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331101602.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331101604.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331101608.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331101609.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331101617.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331103447.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331103708.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331103716.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331104702.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331104742.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331104755.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331104801.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105425.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105427.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105429.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105432.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105631.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105655.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105708.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105723.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331105859.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112838.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112843.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112844.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112850.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112859.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112903.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112916.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112920.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112941.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331112954.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331113927.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331113931.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331113956.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331114001.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331114009.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331114011.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331114015.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331114020.php delete mode 100644 .history/resources/views/layouts/app.blade_20260331140617.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401004903.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100616.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100627.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100700.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100710.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100721.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100723.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100726.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401100738.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110136.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110215.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110217.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110228.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110414.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110425.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110428.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110446.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110500.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110502.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110608.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110614.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401110653.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111144.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111148.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111315.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111346.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111351.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111415.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111423.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111615.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111619.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111620.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111708.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111835.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111841.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111848.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401111909.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150113.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150117.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150313.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150319.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150321.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150501.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150508.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150511.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150532.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150541.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150713.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150718.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401150736.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155325.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155329.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155333.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155351.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155723.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155728.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155804.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155808.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155829.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155940.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401155955.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160012.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160016.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160307.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160319.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160432.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160436.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160454.php delete mode 100644 .history/resources/views/layouts/app.blade_20260401160506.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163333.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163345.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163426.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163431.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163437.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163444.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163723.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163729.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163734.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408163742.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164254.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164259.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164301.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164303.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164306.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164311.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164314.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164333.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164336.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164521.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164609.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408164629.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408165011.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408165845.php delete mode 100644 .history/resources/views/layouts/app.blade_20260408165850.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095659.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095701.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095827.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095840.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095844.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095852.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095853.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095858.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095900.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095912.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095917.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095928.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095932.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095941.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095945.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409095948.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100003.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100012.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100026.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100029.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100033.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100039.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100043.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100045.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100046.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100048.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409100050.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409130932.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409130939.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131038.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131041.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131044.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131056.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131058.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131104.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131107.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131108.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131111.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131113.php delete mode 100644 .history/resources/views/layouts/app.blade_20260409131115.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410133656.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410133700.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410133707.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410133710.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155204.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155206.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155212.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155241.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155258.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155621.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410155635.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410162246.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410162301.php delete mode 100644 .history/resources/views/layouts/app.blade_20260410162309.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413201627.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413201638.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413201640.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413201900.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413201902.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413201930.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202121.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202136.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202143.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202203.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202210.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202222.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202223.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202400.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202401.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202403.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202409.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202413.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202417.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202437.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202445.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202638.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413202652.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413203054.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413203121.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413203124.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413203128.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413203417.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413203557.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413204217.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413205746.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413205749.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413205754.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413205802.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413205950.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413210712.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413211010.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413211013.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413211017.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413211242.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413220233.php delete mode 100644 .history/resources/views/layouts/app.blade_20260413220316.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414210507.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414210509.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414210510.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414210518.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414210520.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414210544.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414223319.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414223320.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414223327.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414230607.php delete mode 100644 .history/resources/views/layouts/app.blade_20260414231443.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416092525.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416092526.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416092538.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416104945.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416194149.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416195740.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416195741.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416195742.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416195748.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416195803.php delete mode 100644 .history/resources/views/layouts/app.blade_20260416195806.php delete mode 100644 .history/resources/views/layouts/auth.blade_20260329205914.php delete mode 100644 .history/resources/views/layouts/auth.blade_20260329205934.php delete mode 100644 .history/resources/views/layouts/user.blade_20260329215225.php delete mode 100644 .history/resources/views/layouts/user.blade_20260329215239.php delete mode 100644 .history/resources/views/layouts/user.blade_20260329231718.php delete mode 100644 .history/resources/views/layouts/user.blade_20260329232053.php delete mode 100644 .history/resources/views/layouts/user.blade_20260329232118.php delete mode 100644 .history/resources/views/layouts/user.blade_20260329232318.php delete mode 100644 .history/resources/views/rt/dashboard.blade_20260416121357.php delete mode 100644 .history/resources/views/rt/dashboard.blade_20260416121413.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170052.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170057.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170511.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170513.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170518.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170549.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170625.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170627.php delete mode 100644 .history/resources/views/rt/penghuni/index.blade_20260416170628.php delete mode 100644 .history/resources/views/user/dashboard.blade_20250819093337.php delete mode 100644 .history/resources/views/user/dashboard.blade_20260329230309.php delete mode 100644 .history/resources/views/user/dashboard.blade_20260329230311.php delete mode 100644 .history/resources/views/user/dashboard.blade_20260329233159.php delete mode 100644 .history/resources/views/user/dashboard.blade_20260410155432.php delete mode 100644 .history/resources/views/user/dashboard.blade_20260410155449.php delete mode 100644 .history/resources/views/user/data_iuran.blade_20260401113508.php delete mode 100644 .history/resources/views/user/data_iuran.blade_20260401113645.php delete mode 100644 .history/resources/views/user/data_iuran.blade_20260401113650.php delete mode 100644 .history/resources/views/user/home.blade_20260331090803.php delete mode 100644 .history/resources/views/user/home.blade_20260331090852.php delete mode 100644 .history/resources/views/user/home.blade_20260331123659.php delete mode 100644 .history/resources/views/user/home.blade_20260331123701.php delete mode 100644 .history/resources/views/user/home.blade_20260331123716.php delete mode 100644 .history/resources/views/user/home.blade_20260331125439.php delete mode 100644 .history/resources/views/user/home.blade_20260331125441.php delete mode 100644 .history/resources/views/user/home.blade_20260331125445.php delete mode 100644 .history/resources/views/user/home.blade_20260331132741.php delete mode 100644 .history/resources/views/user/home.blade_20260331132745.php delete mode 100644 .history/resources/views/user/home.blade_20260331132939.php delete mode 100644 .history/resources/views/user/home.blade_20260331133335.php delete mode 100644 .history/resources/views/user/home.blade_20260331134331.php delete mode 100644 .history/resources/views/user/home.blade_20260331134619.php delete mode 100644 .history/resources/views/user/home.blade_20260331134700.php delete mode 100644 .history/resources/views/user/home.blade_20260331134813.php delete mode 100644 .history/resources/views/user/home.blade_20260331135045.php delete mode 100644 .history/resources/views/user/home.blade_20260331135928.php delete mode 100644 .history/resources/views/user/home.blade_20260331141346.php delete mode 100644 .history/resources/views/user/home.blade_20260331141351.php delete mode 100644 .history/resources/views/user/home.blade_20260401012415.php delete mode 100644 .history/resources/views/user/home.blade_20260408194112.php delete mode 100644 .history/resources/views/user/home.blade_20260408194114.php delete mode 100644 .history/resources/views/user/home.blade_20260408213537.php delete mode 100644 .history/resources/views/user/home.blade_20260408213541.php delete mode 100644 .history/resources/views/user/home.blade_20260408213546.php delete mode 100644 .history/resources/views/user/home.blade_20260408213550.php delete mode 100644 .history/resources/views/user/home.blade_20260408214150.php delete mode 100644 .history/resources/views/user/home.blade_20260408214153.php delete mode 100644 .history/resources/views/user/home.blade_20260408214201.php delete mode 100644 .history/resources/views/user/home.blade_20260408214210.php delete mode 100644 .history/resources/views/user/home.blade_20260409083052.php delete mode 100644 .history/resources/views/user/home.blade_20260409083107.php delete mode 100644 .history/resources/views/user/home.blade_20260409084206.php delete mode 100644 .history/resources/views/user/home.blade_20260409084215.php delete mode 100644 .history/resources/views/user/home.blade_20260409084241.php delete mode 100644 .history/resources/views/user/home.blade_20260409084317.php delete mode 100644 .history/resources/views/user/home.blade_20260409084320.php delete mode 100644 .history/resources/views/user/home.blade_20260409084334.php delete mode 100644 .history/resources/views/user/home.blade_20260409084339.php delete mode 100644 .history/resources/views/user/home.blade_20260409084343.php delete mode 100644 .history/resources/views/user/home.blade_20260409084347.php delete mode 100644 .history/resources/views/user/home.blade_20260409084403.php delete mode 100644 .history/resources/views/user/home.blade_20260409084423.php delete mode 100644 .history/resources/views/user/home.blade_20260409084631.php delete mode 100644 .history/resources/views/user/home.blade_20260409084644.php delete mode 100644 .history/resources/views/user/home.blade_20260409084752.php delete mode 100644 .history/resources/views/user/home.blade_20260409084756.php delete mode 100644 .history/resources/views/user/home.blade_20260409085143.php delete mode 100644 .history/resources/views/user/home.blade_20260409085651.php delete mode 100644 .history/resources/views/user/home.blade_20260409085656.php delete mode 100644 .history/resources/views/user/home.blade_20260409085657.php delete mode 100644 .history/resources/views/user/home.blade_20260409091423.php delete mode 100644 .history/resources/views/user/home.blade_20260409091428.php delete mode 100644 .history/resources/views/user/home.blade_20260409113728.php delete mode 100644 .history/resources/views/user/home.blade_20260409113734.php delete mode 100644 .history/resources/views/user/home.blade_20260409113806.php delete mode 100644 .history/resources/views/user/home.blade_20260410130657.php delete mode 100644 .history/resources/views/user/home.blade_20260410131005.php delete mode 100644 .history/resources/views/user/home.blade_20260410131010.php delete mode 100644 .history/resources/views/user/home.blade_20260410131034.php delete mode 100644 .history/resources/views/user/home.blade_20260410131035.php delete mode 100644 .history/resources/views/user/home.blade_20260410131042.php delete mode 100644 .history/resources/views/user/home.blade_20260410131055.php delete mode 100644 .history/resources/views/user/home.blade_20260410161121.php delete mode 100644 .history/resources/views/user/home.blade_20260410161134.php delete mode 100644 .history/resources/views/user/home.blade_20260410161155.php delete mode 100644 .history/resources/views/user/home.blade_20260410161158.php delete mode 100644 .history/resources/views/user/home.blade_20260410161214.php delete mode 100644 .history/resources/views/user/home.blade_20260410161241.php delete mode 100644 .history/resources/views/user/home.blade_20260410161426.php delete mode 100644 .history/resources/views/user/home.blade_20260410161444.php delete mode 100644 .history/resources/views/user/home.blade_20260410162129.php delete mode 100644 .history/resources/views/user/home.blade_20260410162143.php delete mode 100644 .history/resources/views/user/home.blade_20260410162510.php delete mode 100644 .history/resources/views/user/home.blade_20260410162512.php delete mode 100644 .history/resources/views/user/home.blade_20260410162515.php delete mode 100644 .history/resources/views/user/home.blade_20260410162516.php delete mode 100644 .history/resources/views/user/home.blade_20260410162518.php delete mode 100644 .history/resources/views/user/home.blade_20260410162547.php delete mode 100644 .history/resources/views/user/home.blade_20260410162626.php delete mode 100644 .history/resources/views/user/home.blade_20260410162652.php delete mode 100644 .history/resources/views/user/home.blade_20260410162703.php delete mode 100644 .history/resources/views/user/home.blade_20260410162712.php delete mode 100644 .history/resources/views/user/home.blade_20260410162717.php delete mode 100644 .history/resources/views/user/home.blade_20260410162734.php delete mode 100644 .history/resources/views/user/home.blade_20260410162736.php delete mode 100644 .history/resources/views/user/home.blade_20260410162746.php delete mode 100644 .history/resources/views/user/home.blade_20260410162750.php delete mode 100644 .history/resources/views/user/home.blade_20260410162752.php delete mode 100644 .history/resources/views/user/home.blade_20260410162753.php delete mode 100644 .history/resources/views/user/home.blade_20260410162950.php delete mode 100644 .history/resources/views/user/home.blade_20260413200257.php delete mode 100644 .history/resources/views/user/home.blade_20260413200732.php delete mode 100644 .history/resources/views/user/home.blade_20260413200736.php delete mode 100644 .history/resources/views/user/home.blade_20260413200851.php delete mode 100644 .history/resources/views/user/home.blade_20260413200853.php delete mode 100644 .history/resources/views/user/home.blade_20260413200911.php delete mode 100644 .history/resources/views/user/home.blade_20260413200921.php delete mode 100644 .history/resources/views/user/home.blade_20260413200927.php delete mode 100644 .history/resources/views/user/home.blade_20260413201217.php delete mode 100644 .history/resources/views/user/home.blade_20260413201303.php delete mode 100644 .history/resources/views/user/home.blade_20260413201311.php delete mode 100644 .history/resources/views/user/home.blade_20260413201317.php delete mode 100644 .history/resources/views/user/home.blade_20260413203520.php delete mode 100644 .history/resources/views/user/home.blade_20260413203532.php delete mode 100644 .history/resources/views/user/home.blade_20260413203533.php delete mode 100644 .history/resources/views/user/home.blade_20260413232706.php delete mode 100644 .history/resources/views/user/home.blade_20260414000329.php delete mode 100644 .history/resources/views/user/home.blade_20260414000350.php delete mode 100644 .history/resources/views/user/home.blade_20260414000728.php delete mode 100644 .history/resources/views/user/home.blade_20260414001059.php delete mode 100644 .history/resources/views/user/home.blade_20260414001125.php delete mode 100644 .history/resources/views/user/home.blade_20260414001126.php delete mode 100644 .history/resources/views/user/home.blade_20260414143612.php delete mode 100644 .history/resources/views/user/home.blade_20260414143613.php delete mode 100644 .history/resources/views/user/home.blade_20260414143716.php delete mode 100644 .history/resources/views/user/home.blade_20260414144013.php delete mode 100644 .history/resources/views/user/home.blade_20260414144023.php delete mode 100644 .history/resources/views/user/home.blade_20260414144025.php delete mode 100644 .history/resources/views/user/home.blade_20260414144110.php delete mode 100644 .history/resources/views/user/home.blade_20260414144906.php delete mode 100644 .history/resources/views/user/home.blade_20260414145001.php delete mode 100644 .history/resources/views/user/home.blade_20260414145006.php delete mode 100644 .history/resources/views/user/home.blade_20260414145007.php delete mode 100644 .history/resources/views/user/home.blade_20260414145012.php delete mode 100644 .history/resources/views/user/home.blade_20260414145340.php delete mode 100644 .history/resources/views/user/home.blade_20260414204605.php delete mode 100644 .history/resources/views/user/home.blade_20260414204607.php delete mode 100644 .history/resources/views/user/home.blade_20260414204626.php delete mode 100644 .history/resources/views/user/home.blade_20260414204627.php delete mode 100644 .history/resources/views/user/home.blade_20260414205218.php delete mode 100644 .history/resources/views/user/home.blade_20260414205256.php delete mode 100644 .history/resources/views/user/home.blade_20260414205257.php delete mode 100644 .history/resources/views/user/home.blade_20260414210417.php delete mode 100644 .history/resources/views/user/home.blade_20260414215013.php delete mode 100644 .history/resources/views/user/home.blade_20260414215015.php delete mode 100644 .history/resources/views/user/home.blade_20260414215032.php delete mode 100644 .history/resources/views/user/home.blade_20260414215036.php delete mode 100644 .history/resources/views/user/home.blade_20260414215045.php delete mode 100644 .history/resources/views/user/home.blade_20260414215330.php delete mode 100644 .history/resources/views/user/home.blade_20260414215339.php delete mode 100644 .history/resources/views/user/home.blade_20260414220053.php delete mode 100644 .history/resources/views/user/home.blade_20260414223610.php delete mode 100644 .history/resources/views/user/home.blade_20260414223641.php delete mode 100644 .history/resources/views/user/home.blade_20260414223702.php delete mode 100644 .history/resources/views/user/home.blade_20260414223735.php delete mode 100644 .history/resources/views/user/home.blade_20260414223736.php delete mode 100644 .history/resources/views/user/home.blade_20260414224020.php delete mode 100644 .history/resources/views/user/home.blade_20260414224132.php delete mode 100644 .history/resources/views/user/home.blade_20260414224135.php delete mode 100644 .history/resources/views/user/home.blade_20260414224219.php delete mode 100644 .history/resources/views/user/home.blade_20260414224446.php delete mode 100644 .history/resources/views/user/home.blade_20260414224523.php delete mode 100644 .history/resources/views/user/home.blade_20260414224525.php delete mode 100644 .history/resources/views/user/home.blade_20260414224528.php delete mode 100644 .history/resources/views/user/home.blade_20260414224603.php delete mode 100644 .history/resources/views/user/home.blade_20260414224835.php delete mode 100644 .history/resources/views/user/home.blade_20260414224836.php delete mode 100644 .history/resources/views/user/home.blade_20260414224854.php delete mode 100644 .history/resources/views/user/home.blade_20260414224855.php delete mode 100644 .history/resources/views/user/home.blade_20260414225100.php delete mode 100644 .history/resources/views/user/home.blade_20260414225104.php delete mode 100644 .history/resources/views/user/home.blade_20260414225106.php delete mode 100644 .history/resources/views/user/home.blade_20260414225121.php delete mode 100644 .history/resources/views/user/home.blade_20260414225122.php delete mode 100644 .history/resources/views/user/home.blade_20260414225347.php delete mode 100644 .history/resources/views/user/home.blade_20260414225348.php delete mode 100644 .history/resources/views/user/home.blade_20260414225414.php delete mode 100644 .history/resources/views/user/home.blade_20260414225641.php delete mode 100644 .history/resources/views/user/home.blade_20260414225642.php delete mode 100644 .history/resources/views/user/home.blade_20260414225837.php delete mode 100644 .history/resources/views/user/home.blade_20260414225903.php delete mode 100644 .history/resources/views/user/home.blade_20260414225906.php delete mode 100644 .history/resources/views/user/home.blade_20260414225908.php delete mode 100644 .history/resources/views/user/home.blade_20260414225909.php delete mode 100644 .history/resources/views/user/home.blade_20260414225929.php delete mode 100644 .history/resources/views/user/home.blade_20260414225936.php delete mode 100644 .history/resources/views/user/home.blade_20260414230046.php delete mode 100644 .history/resources/views/user/home.blade_20260414230518.php delete mode 100644 .history/resources/views/user/home.blade_20260414230519.php delete mode 100644 .history/resources/views/user/home.blade_20260414230543.php delete mode 100644 .history/resources/views/user/home.blade_20260414230544.php delete mode 100644 .history/resources/views/user/home.blade_20260414231055.php delete mode 100644 .history/resources/views/user/home.blade_20260414231056.php delete mode 100644 .history/resources/views/user/home.blade_20260414231222.php delete mode 100644 .history/resources/views/user/home.blade_20260414231248.php delete mode 100644 .history/resources/views/user/home.blade_20260414231250.php delete mode 100644 .history/resources/views/user/home.blade_20260414231252.php delete mode 100644 .history/resources/views/user/home.blade_20260414231258.php delete mode 100644 .history/resources/views/user/home.blade_20260414231300.php delete mode 100644 .history/resources/views/user/home.blade_20260414231411.php delete mode 100644 .history/resources/views/user/home.blade_20260414231503.php delete mode 100644 .history/resources/views/user/home.blade_20260414231525.php delete mode 100644 .history/resources/views/user/home.blade_20260414231526.php delete mode 100644 .history/resources/views/user/home.blade_20260414231530.php delete mode 100644 .history/resources/views/user/home.blade_20260414231536.php delete mode 100644 .history/resources/views/user/home.blade_20260414231630.php delete mode 100644 .history/resources/views/user/home.blade_20260414231631.php delete mode 100644 .history/resources/views/user/home.blade_20260414233805.php delete mode 100644 .history/resources/views/user/home.blade_20260414233806.php delete mode 100644 .history/resources/views/user/home.blade_20260414233822.php delete mode 100644 .history/resources/views/user/home.blade_20260414233826.php delete mode 100644 .history/resources/views/user/home.blade_20260414234029.php delete mode 100644 .history/resources/views/user/home.blade_20260414234138.php delete mode 100644 .history/resources/views/user/home.blade_20260415000204.php delete mode 100644 .history/resources/views/user/home.blade_20260415000206.php delete mode 100644 .history/resources/views/user/home.blade_20260415000207.php delete mode 100644 .history/resources/views/user/home.blade_20260415000239.php delete mode 100644 .history/resources/views/user/home.blade_20260415000241.php delete mode 100644 .history/resources/views/user/home.blade_20260415000259.php delete mode 100644 .history/resources/views/user/home.blade_20260415000300.php delete mode 100644 .history/resources/views/user/home.blade_20260415000341.php delete mode 100644 .history/resources/views/user/home.blade_20260415000355.php delete mode 100644 .history/resources/views/user/home.blade_20260415000408.php delete mode 100644 .history/resources/views/user/home.blade_20260415000415.php delete mode 100644 .history/resources/views/user/home.blade_20260415000452.php delete mode 100644 .history/resources/views/user/home.blade_20260415000456.php delete mode 100644 .history/resources/views/user/home.blade_20260415000458.php delete mode 100644 .history/resources/views/user/home.blade_20260415000533.php delete mode 100644 .history/resources/views/user/home.blade_20260415000545.php delete mode 100644 .history/resources/views/user/home.blade_20260415000554.php delete mode 100644 .history/resources/views/user/home.blade_20260416155527.php delete mode 100644 .history/resources/views/user/home.blade_20260416160100.php delete mode 100644 .history/resources/views/user/home.blade_20260416160140.php delete mode 100644 .history/resources/views/user/home.blade_20260416160145.php delete mode 100644 .history/resources/views/user/home.blade_20260416193226.php delete mode 100644 .history/resources/views/user/home.blade_20260416193227.php delete mode 100644 .history/resources/views/user/informasi/detail.blade_20260414204931.php delete mode 100644 .history/resources/views/user/informasi/detail.blade_20260414204941.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161200.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161215.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161216.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161217.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161218.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161227.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161230.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161231.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161235.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161237.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408161244.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408164352.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408164355.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408165911.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408165915.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408171243.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408171244.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408171249.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408171307.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408171310.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408171822.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408173634.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408173651.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408183125.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408183929.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408183933.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408191356.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408191357.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408191359.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408191411.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408191414.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408213349.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215425.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215535.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215540.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215615.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215623.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215625.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215629.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215642.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215649.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215652.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215655.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215657.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215701.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215703.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215705.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215906.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215943.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215951.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408215956.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220002.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220004.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220005.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220012.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220017.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220021.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220035.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220037.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220042.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220044.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220046.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220240.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220326.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260408220330.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130432.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130603.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130604.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130608.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130842.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130845.php delete mode 100644 .history/resources/views/user/iuran/index.blade_20260410130920.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408161321.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162237.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162243.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162244.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162248.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162250.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162253.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162255.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162257.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408162540.php delete mode 100644 .history/resources/views/user/iuran/status.blade_20260408173311.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408161258.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162138.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162141.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162143.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162204.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162206.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162207.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162209.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162210.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162212.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162213.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162214.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162216.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162218.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162220.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162222.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408162339.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408170019.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408171845.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408171902.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408173738.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408190621.php delete mode 100644 .history/resources/views/user/iuran/upload.blade_20260408191427.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260410133604.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260410133611.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260410135602.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260410141127.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260410155728.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260410155736.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260414004100.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260414004417.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260414004419.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260414004421.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260414004424.php delete mode 100644 .history/resources/views/user/layanan/create.blade_20260414004448.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410133618.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410133631.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410135611.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410135615.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410135617.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410141140.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410155702.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410155923.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410155924.php delete mode 100644 .history/resources/views/user/layanan/status.blade_20260410160456.php delete mode 100644 .history/resources/views/user/pengaduan.blade_20260401112850.php delete mode 100644 .history/resources/views/user/pengaduan.blade_20260401112929.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401151547.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401151604.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401151812.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154105.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154111.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154114.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154117.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154118.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154123.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154127.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154131.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154133.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154134.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154136.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154151.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154155.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154333.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154349.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154357.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154359.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401154405.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401155057.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401155103.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160053.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160057.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160059.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160100.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160111.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160115.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160121.php delete mode 100644 .history/resources/views/user/profile/edit.blade_20260401160125.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331091101.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331091132.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111617.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111620.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111622.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111738.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111740.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111742.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331111925.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331112800.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331113853.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331113901.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331114046.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331114104.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331115733.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331115736.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331115738.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331115743.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331123602.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331133715.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331133719.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331133721.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331133723.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331154652.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331154657.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331154701.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331154710.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331154750.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331154810.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331160954.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331161437.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331161501.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331161540.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331161930.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331161932.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162031.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162035.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162129.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162133.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162246.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162250.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162252.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331162253.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331163504.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331163710.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331163717.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331163849.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331163853.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331163921.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331164223.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331164225.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331164226.php delete mode 100644 .history/resources/views/user/rumah.blade_20260331164227.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416160002.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416160008.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416160023.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161002.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161133.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161135.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161136.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161605.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161658.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161719.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416161947.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162011.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162012.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162013.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162016.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162354.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162450.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162500.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162511.php delete mode 100644 .history/resources/views/user/rumah.blade_20260416162512.php delete mode 100644 .history/resources/views/user/status_pembayara.blade_20260401113433.php delete mode 100644 .history/resources/views/user/status_pembayara.blade_20260401113610.php delete mode 100644 .history/resources/views/user/status_pembayaran.blade_20260401112430.php delete mode 100644 .history/resources/views/user/status_pembayaran.blade_20260401112549.php delete mode 100644 .history/resources/views/user/status_pembayaran.blade_20260401113628.php delete mode 100644 .history/resources/views/user/status_pengaduan.blade_20260401112430.php delete mode 100644 .history/resources/views/user/status_pengaduan.blade_20260401112559.php delete mode 100644 .history/resources/views/user/statuspengaduan.blade_20260401112910.php delete mode 100644 .history/resources/views/user/statuspengaduan.blade_20260401112949.php delete mode 100644 .history/resources/views/user/upload_pembayaran.blade_20260401112430.php delete mode 100644 .history/resources/views/user/upload_pembayaran.blade_20260401112539.php delete mode 100644 .history/resources/views/user/upload_pembayaran.blade_20260401113634.php delete mode 100644 .history/resources/views/user/upload_pembayaran.blade_20260401113642.php delete mode 100644 .history/routes/web_20260329194301.php delete mode 100644 .history/routes/web_20260329194310.php delete mode 100644 .history/routes/web_20260329194647.php delete mode 100644 .history/routes/web_20260329194652.php delete mode 100644 .history/routes/web_20260329194654.php delete mode 100644 .history/routes/web_20260329194655.php delete mode 100644 .history/routes/web_20260329194657.php delete mode 100644 .history/routes/web_20260329210551.php delete mode 100644 .history/routes/web_20260329210629.php delete mode 100644 .history/routes/web_20260329210646.php delete mode 100644 .history/routes/web_20260329210648.php delete mode 100644 .history/routes/web_20260329210653.php delete mode 100644 .history/routes/web_20260329210655.php delete mode 100644 .history/routes/web_20260329210708.php delete mode 100644 .history/routes/web_20260329210710.php delete mode 100644 .history/routes/web_20260329210716.php delete mode 100644 .history/routes/web_20260329210813.php delete mode 100644 .history/routes/web_20260329210836.php delete mode 100644 .history/routes/web_20260329211013.php delete mode 100644 .history/routes/web_20260329211015.php delete mode 100644 .history/routes/web_20260329215555.php delete mode 100644 .history/routes/web_20260331001358.php delete mode 100644 .history/routes/web_20260331001547.php delete mode 100644 .history/routes/web_20260331002159.php delete mode 100644 .history/routes/web_20260331002207.php delete mode 100644 .history/routes/web_20260331002210.php delete mode 100644 .history/routes/web_20260331002656.php delete mode 100644 .history/routes/web_20260331002702.php delete mode 100644 .history/routes/web_20260331090427.php delete mode 100644 .history/routes/web_20260331090549.php delete mode 100644 .history/routes/web_20260331093427.php delete mode 100644 .history/routes/web_20260331093428.php delete mode 100644 .history/routes/web_20260331094525.php delete mode 100644 .history/routes/web_20260331094530.php delete mode 100644 .history/routes/web_20260331111718.php delete mode 100644 .history/routes/web_20260331114254.php delete mode 100644 .history/routes/web_20260331114255.php delete mode 100644 .history/routes/web_20260331123859.php delete mode 100644 .history/routes/web_20260331154447.php delete mode 100644 .history/routes/web_20260331171822.php delete mode 100644 .history/routes/web_20260331172636.php delete mode 100644 .history/routes/web_20260331172703.php delete mode 100644 .history/routes/web_20260331173014.php delete mode 100644 .history/routes/web_20260331173203.php delete mode 100644 .history/routes/web_20260331173207.php delete mode 100644 .history/routes/web_20260331173212.php delete mode 100644 .history/routes/web_20260331173601.php delete mode 100644 .history/routes/web_20260331173602.php delete mode 100644 .history/routes/web_20260331173603.php delete mode 100644 .history/routes/web_20260331173606.php delete mode 100644 .history/routes/web_20260331173608.php delete mode 100644 .history/routes/web_20260331173610.php delete mode 100644 .history/routes/web_20260331173611.php delete mode 100644 .history/routes/web_20260331173616.php delete mode 100644 .history/routes/web_20260331173621.php delete mode 100644 .history/routes/web_20260331173622.php delete mode 100644 .history/routes/web_20260331174333.php delete mode 100644 .history/routes/web_20260331174929.php delete mode 100644 .history/routes/web_20260331174930.php delete mode 100644 .history/routes/web_20260331174936.php delete mode 100644 .history/routes/web_20260331174938.php delete mode 100644 .history/routes/web_20260331175056.php delete mode 100644 .history/routes/web_20260331175058.php delete mode 100644 .history/routes/web_20260331175112.php delete mode 100644 .history/routes/web_20260331175113.php delete mode 100644 .history/routes/web_20260331175116.php delete mode 100644 .history/routes/web_20260331175121.php delete mode 100644 .history/routes/web_20260331235916.php delete mode 100644 .history/routes/web_20260331235918.php delete mode 100644 .history/routes/web_20260331235920.php delete mode 100644 .history/routes/web_20260331235921.php delete mode 100644 .history/routes/web_20260331235922.php delete mode 100644 .history/routes/web_20260331235925.php delete mode 100644 .history/routes/web_20260331235926.php delete mode 100644 .history/routes/web_20260331235928.php delete mode 100644 .history/routes/web_20260401000230.php delete mode 100644 .history/routes/web_20260401105604.php delete mode 100644 .history/routes/web_20260401105610.php delete mode 100644 .history/routes/web_20260401113248.php delete mode 100644 .history/routes/web_20260401113250.php delete mode 100644 .history/routes/web_20260401140634.php delete mode 100644 .history/routes/web_20260401140639.php delete mode 100644 .history/routes/web_20260401140640.php delete mode 100644 .history/routes/web_20260401140641.php delete mode 100644 .history/routes/web_20260401140644.php delete mode 100644 .history/routes/web_20260401140651.php delete mode 100644 .history/routes/web_20260401140657.php delete mode 100644 .history/routes/web_20260401140700.php delete mode 100644 .history/routes/web_20260401140707.php delete mode 100644 .history/routes/web_20260401140952.php delete mode 100644 .history/routes/web_20260401140955.php delete mode 100644 .history/routes/web_20260401141001.php delete mode 100644 .history/routes/web_20260401141011.php delete mode 100644 .history/routes/web_20260401141012.php delete mode 100644 .history/routes/web_20260401141014.php delete mode 100644 .history/routes/web_20260401141016.php delete mode 100644 .history/routes/web_20260401141627.php delete mode 100644 .history/routes/web_20260401141629.php delete mode 100644 .history/routes/web_20260401141644.php delete mode 100644 .history/routes/web_20260401141649.php delete mode 100644 .history/routes/web_20260401142638.php delete mode 100644 .history/routes/web_20260401144037.php delete mode 100644 .history/routes/web_20260401144040.php delete mode 100644 .history/routes/web_20260401144615.php delete mode 100644 .history/routes/web_20260401144617.php delete mode 100644 .history/routes/web_20260401144619.php delete mode 100644 .history/routes/web_20260401144621.php delete mode 100644 .history/routes/web_20260401145414.php delete mode 100644 .history/routes/web_20260401145728.php delete mode 100644 .history/routes/web_20260401155125.php delete mode 100644 .history/routes/web_20260401155126.php delete mode 100644 .history/routes/web_20260401155130.php delete mode 100644 .history/routes/web_20260401155138.php delete mode 100644 .history/routes/web_20260401155140.php delete mode 100644 .history/routes/web_20260401233028.php delete mode 100644 .history/routes/web_20260401233049.php delete mode 100644 .history/routes/web_20260401233050.php delete mode 100644 .history/routes/web_20260401233052.php delete mode 100644 .history/routes/web_20260401233140.php delete mode 100644 .history/routes/web_20260401233144.php delete mode 100644 .history/routes/web_20260401233147.php delete mode 100644 .history/routes/web_20260401233150.php delete mode 100644 .history/routes/web_20260401233412.php delete mode 100644 .history/routes/web_20260401235702.php delete mode 100644 .history/routes/web_20260408160841.php delete mode 100644 .history/routes/web_20260408160856.php delete mode 100644 .history/routes/web_20260408160907.php delete mode 100644 .history/routes/web_20260408160952.php delete mode 100644 .history/routes/web_20260408162712.php delete mode 100644 .history/routes/web_20260408164023.php delete mode 100644 .history/routes/web_20260408164027.php delete mode 100644 .history/routes/web_20260408164935.php delete mode 100644 .history/routes/web_20260408164947.php delete mode 100644 .history/routes/web_20260408165022.php delete mode 100644 .history/routes/web_20260408165034.php delete mode 100644 .history/routes/web_20260408165038.php delete mode 100644 .history/routes/web_20260408165042.php delete mode 100644 .history/routes/web_20260408165708.php delete mode 100644 .history/routes/web_20260408165710.php delete mode 100644 .history/routes/web_20260408165725.php delete mode 100644 .history/routes/web_20260408165732.php delete mode 100644 .history/routes/web_20260408165734.php delete mode 100644 .history/routes/web_20260408165741.php delete mode 100644 .history/routes/web_20260408165742.php delete mode 100644 .history/routes/web_20260408165748.php delete mode 100644 .history/routes/web_20260408165820.php delete mode 100644 .history/routes/web_20260408165823.php delete mode 100644 .history/routes/web_20260408171018.php delete mode 100644 .history/routes/web_20260408171708.php delete mode 100644 .history/routes/web_20260408182917.php delete mode 100644 .history/routes/web_20260408184452.php delete mode 100644 .history/routes/web_20260408184458.php delete mode 100644 .history/routes/web_20260408185819.php delete mode 100644 .history/routes/web_20260408190308.php delete mode 100644 .history/routes/web_20260408190318.php delete mode 100644 .history/routes/web_20260408191233.php delete mode 100644 .history/routes/web_20260409083139.php delete mode 100644 .history/routes/web_20260409085728.php delete mode 100644 .history/routes/web_20260409114110.php delete mode 100644 .history/routes/web_20260409114112.php delete mode 100644 .history/routes/web_20260410133459.php delete mode 100644 .history/routes/web_20260410133507.php delete mode 100644 .history/routes/web_20260410133518.php delete mode 100644 .history/routes/web_20260410135527.php delete mode 100644 .history/routes/web_20260410135529.php delete mode 100644 .history/routes/web_20260410135544.php delete mode 100644 .history/routes/web_20260410135546.php delete mode 100644 .history/routes/web_20260413214555.php delete mode 100644 .history/routes/web_20260413230024.php delete mode 100644 .history/routes/web_20260413230025.php delete mode 100644 .history/routes/web_20260413230026.php delete mode 100644 .history/routes/web_20260413230029.php delete mode 100644 .history/routes/web_20260413230157.php delete mode 100644 .history/routes/web_20260413230514.php delete mode 100644 .history/routes/web_20260413230518.php delete mode 100644 .history/routes/web_20260413230710.php delete mode 100644 .history/routes/web_20260413230722.php delete mode 100644 .history/routes/web_20260413230741.php delete mode 100644 .history/routes/web_20260413230743.php delete mode 100644 .history/routes/web_20260413230747.php delete mode 100644 .history/routes/web_20260413230849.php delete mode 100644 .history/routes/web_20260413230852.php delete mode 100644 .history/routes/web_20260413231049.php delete mode 100644 .history/routes/web_20260413231612.php delete mode 100644 .history/routes/web_20260413231613.php delete mode 100644 .history/routes/web_20260413232943.php delete mode 100644 .history/routes/web_20260414000303.php delete mode 100644 .history/routes/web_20260414000656.php delete mode 100644 .history/routes/web_20260414004643.php delete mode 100644 .history/routes/web_20260414004644.php delete mode 100644 .history/routes/web_20260414143646.php delete mode 100644 .history/routes/web_20260414143651.php delete mode 100644 .history/routes/web_20260414143658.php delete mode 100644 .history/routes/web_20260414143704.php delete mode 100644 .history/routes/web_20260414144053.php delete mode 100644 .history/routes/web_20260414144059.php delete mode 100644 .history/routes/web_20260414144853.php delete mode 100644 .history/routes/web_20260414144856.php delete mode 100644 .history/routes/web_20260414203600.php delete mode 100644 .history/routes/web_20260414203609.php delete mode 100644 .history/routes/web_20260414203631.php delete mode 100644 .history/routes/web_20260414203637.php delete mode 100644 .history/routes/web_20260414203641.php delete mode 100644 .history/routes/web_20260414203643.php delete mode 100644 .history/routes/web_20260414203646.php delete mode 100644 .history/routes/web_20260414204750.php delete mode 100644 .history/routes/web_20260414204754.php delete mode 100644 .history/routes/web_20260414205752.php delete mode 100644 .history/routes/web_20260414220548.php delete mode 100644 .history/routes/web_20260414220555.php delete mode 100644 .history/routes/web_20260414220643.php delete mode 100644 .history/routes/web_20260414220652.php delete mode 100644 .history/routes/web_20260414220717.php delete mode 100644 .history/routes/web_20260414220720.php delete mode 100644 .history/routes/web_20260414220742.php delete mode 100644 .history/routes/web_20260414220743.php delete mode 100644 .history/routes/web_20260414220750.php delete mode 100644 .history/routes/web_20260414220835.php delete mode 100644 .history/routes/web_20260414220840.php delete mode 100644 .history/routes/web_20260414220843.php delete mode 100644 .history/routes/web_20260414220936.php delete mode 100644 .history/routes/web_20260414220939.php delete mode 100644 .history/routes/web_20260414222025.php delete mode 100644 .history/routes/web_20260414222028.php delete mode 100644 .history/routes/web_20260414222030.php delete mode 100644 .history/routes/web_20260414222130.php delete mode 100644 .history/routes/web_20260414222136.php delete mode 100644 .history/routes/web_20260416102946.php delete mode 100644 .history/routes/web_20260416102950.php delete mode 100644 .history/routes/web_20260416104152.php delete mode 100644 .history/routes/web_20260416104159.php delete mode 100644 .history/routes/web_20260416104204.php delete mode 100644 .history/routes/web_20260416104621.php delete mode 100644 .history/routes/web_20260416104625.php delete mode 100644 .history/routes/web_20260416121315.php delete mode 100644 .history/routes/web_20260416165914.php delete mode 100644 .history/routes/web_20260416165916.php delete mode 100644 .history/routes/web_20260416194640.php delete mode 100644 .history/routes/web_20260416194813.php delete mode 100644 .history/routes/web_20260416194817.php delete mode 100644 .history/routes/web_20260417145815.php delete mode 100644 .history/routes/web_20260417150818.php delete mode 100644 .history/routes/web_20260417150820.php delete mode 100644 .history/routes/web_20260417154930.php delete mode 100644 .history/routes/web_20260417154932.php delete mode 100644 .history/routes/web_20260417154936.php delete mode 100644 .history/routes/web_20260417155302.php delete mode 100644 .history/routes/web_20260417155455.php delete mode 100644 .history/routes/web_20260417155604.php delete mode 100644 .history/routes/web_20260417155606.php delete mode 100644 .history/routes/web_20260417155609.php delete mode 100644 .history/routes/web_20260417155631.php delete mode 100644 .history/routes/web_20260417160952.php delete mode 100644 .history/routes/web_20260417161539.php delete mode 100644 .history/routes/web_20260417161545.php delete mode 100644 .history/routes/web_20260417161548.php delete mode 100644 .history/routes/web_20260417161549.php delete mode 100644 .history/routes/web_20260417161552.php delete mode 100644 .history/routes/web_20260417161602.php delete mode 100644 .history/routes/web_20260417161605.php delete mode 100644 .history/routes/web_20260417161607.php delete mode 100644 .history/routes/web_20260417162349.php create mode 100644 public/bukti/1776512964.png create mode 100644 public/bukti/1776513030.png create mode 100644 public/bukti/1776785664.jpeg create mode 100644 public/bukti/1776787153.jpeg create mode 100644 public/bukti/1776930601.png create mode 100644 public/bukti/1776975196.png create mode 100644 public/bukti/1777990019.png create mode 100644 public/foto_rumah/1776563830.png create mode 100644 public/foto_rumah/1776564363.jpeg create mode 100644 public/foto_rumah/1776684339.jpeg create mode 100644 public/foto_rumah/1776684407.jpeg create mode 100644 public/foto_rumah/1776685831.jpeg create mode 100644 public/informasi/1776847644.png create mode 100644 public/informasi/1777959481.jpg create mode 100644 public/informasi/1777959590.jpg create mode 100644 public/informasi/1777959672.jpg create mode 100644 public/profile/1776517855.png create mode 100644 public/profile/1778066892.jpg create mode 100644 public/profile/1778069422.png create mode 100644 public/tunggal.png create mode 100644 resources/views/admin/laporan/cetak.blade.php create mode 100644 resources/views/admin/user/create.blade.php create mode 100644 resources/views/layouts/admin.blade.php create mode 100644 resources/views/rt/profile/edit.blade.php create mode 100644 resources/views/rt/rumah/index.blade.php diff --git a/.history/.env_20260329222722 b/.history/.env_20260329222722 deleted file mode 100644 index 320dfd6..0000000 --- a/.history/.env_20260329222722 +++ /dev/null @@ -1,64 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=log -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS="hello@example.com" -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 - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260409103701 b/.history/.env_20260409103701 deleted file mode 100644 index c6250e6..0000000 --- a/.history/.env_20260409103701 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=ISI_TOKEN_KAMU_DISINI - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=log -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS="hello@example.com" -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 - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260409103743 b/.history/.env_20260409103743 deleted file mode 100644 index fdad9d2..0000000 --- a/.history/.env_20260409103743 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=gGaFJXn41pcCRvRDPyyq - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=log -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS="hello@example.com" -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 - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260409104307 b/.history/.env_20260409104307 deleted file mode 100644 index fd0df40..0000000 --- a/.history/.env_20260409104307 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=log -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS="hello@example.com" -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 - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260413212106 b/.history/.env_20260413212106 deleted file mode 100644 index bdefda0..0000000 --- a/.history/.env_20260413212106 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=EMAIL_KAMU -MAIL_PASSWORD=APP_PASSWORD_GMAIL -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=EMAIL_KAMU -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260413212119 b/.history/.env_20260413212119 deleted file mode 100644 index c4064e9..0000000 --- a/.history/.env_20260413212119 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=APP_PASSWORD_GMAIL -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=EMAIL_KAMU -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260413212130 b/.history/.env_20260413212130 deleted file mode 100644 index 90726d1..0000000 --- a/.history/.env_20260413212130 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=APP_PASSWORD_GMAIL -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260414132645 b/.history/.env_20260414132645 deleted file mode 100644 index 101efd8..0000000 --- a/.history/.env_20260414132645 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD= -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260414132646 b/.history/.env_20260414132646 deleted file mode 100644 index 1d0b1ea..0000000 --- a/.history/.env_20260414132646 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=qnte zkku hlrg nxzs -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260414132717 b/.history/.env_20260414132717 deleted file mode 100644 index 2a92f0c..0000000 --- a/.history/.env_20260414132717 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=qntezkku hlrg nxzs -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260414132719 b/.history/.env_20260414132719 deleted file mode 100644 index ce2a1db..0000000 --- a/.history/.env_20260414132719 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=qntezkkuhlrg nxzs -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260414132721 b/.history/.env_20260414132721 deleted file mode 100644 index c9c0a93..0000000 --- a/.history/.env_20260414132721 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=qntezkkuhlrgnxzs -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/.env_20260414140458 b/.history/.env_20260414140458 deleted file mode 100644 index c9c0a93..0000000 --- a/.history/.env_20260414140458 +++ /dev/null @@ -1,66 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=greenview -DB_USERNAME=root -DB_PASSWORD= - -FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj - -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.gmail.com -MAIL_PORT=587 -MAIL_USERNAME=mlnryan05@gmail.com -MAIL_PASSWORD=qntezkkuhlrgnxzs -MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS=mlnryan05@gmail.com -MAIL_FROM_NAME="Green View" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401140452.php b/.history/app/Http/Controllers/Admin/UserController_20260401140452.php deleted file mode 100644 index 04c9c5a..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401140452.php +++ /dev/null @@ -1,11 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401144444.php b/.history/app/Http/Controllers/Admin/UserController_20260401144444.php deleted file mode 100644 index 1f91d30..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401144444.php +++ /dev/null @@ -1,43 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401144450.php b/.history/app/Http/Controllers/Admin/UserController_20260401144450.php deleted file mode 100644 index d9590a4..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401144450.php +++ /dev/null @@ -1,43 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401144526.php b/.history/app/Http/Controllers/Admin/UserController_20260401144526.php deleted file mode 100644 index e9f753d..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401144526.php +++ /dev/null @@ -1,43 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145426.php b/.history/app/Http/Controllers/Admin/UserController_20260401145426.php deleted file mode 100644 index 5a59799..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145426.php +++ /dev/null @@ -1,44 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145427.php b/.history/app/Http/Controllers/Admin/UserController_20260401145427.php deleted file mode 100644 index 5ee7329..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145427.php +++ /dev/null @@ -1,45 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - - Route::delete('/admin/user/delete/{id}', [UserController::class, 'destroy'])->name('admin.user.delete'); -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145429.php b/.history/app/Http/Controllers/Admin/UserController_20260401145429.php deleted file mode 100644 index 0f37f22..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145429.php +++ /dev/null @@ -1,45 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - - -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145431.php b/.history/app/Http/Controllers/Admin/UserController_20260401145431.php deleted file mode 100644 index 5ee7329..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145431.php +++ /dev/null @@ -1,45 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - - Route::delete('/admin/user/delete/{id}', [UserController::class, 'destroy'])->name('admin.user.delete'); -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145432.php b/.history/app/Http/Controllers/Admin/UserController_20260401145432.php deleted file mode 100644 index 0f37f22..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145432.php +++ /dev/null @@ -1,45 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - - -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145436.php b/.history/app/Http/Controllers/Admin/UserController_20260401145436.php deleted file mode 100644 index 16a4556..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145436.php +++ /dev/null @@ -1,51 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) -{ - $user = \App\Models\User::findOrFail($id); - $user->delete(); - - return redirect()->route('admin.user.index')->with('success', 'User berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/Admin/UserController_20260401145441.php b/.history/app/Http/Controllers/Admin/UserController_20260401145441.php deleted file mode 100644 index fe7a80e..0000000 --- a/.history/app/Http/Controllers/Admin/UserController_20260401145441.php +++ /dev/null @@ -1,51 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'role' => 'required' - ]); - - $user->update([ - 'name' => $request->name, - 'email' => $request->email, - 'role' => $request->role, - ]); - - return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $user = \App\Models\User::findOrFail($id); - $user->delete(); - - return redirect()->route('admin.user.index')->with('success', 'User berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329205003.php b/.history/app/Http/Controllers/AuthController_20260329205003.php deleted file mode 100644 index bffe3a2..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329205003.php +++ /dev/null @@ -1,10 +0,0 @@ -validate([ - 'email' => 'required|email', - 'password' => 'required' - ]); - - if (Auth::attempt($request->only('email', 'password'))) { - - $request->session()->regenerate(); - - // CEK ROLE - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/penghuni/dashboard'); - } - } - - return back()->with('error', 'Email atau password salah!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - $request->validate([ - 'name' => 'required', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - User::create([ - 'name' => $request->name, - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' // default user - ]); - - return redirect('/login')->with('success', 'Registrasi berhasil, silakan login'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329205317.php b/.history/app/Http/Controllers/AuthController_20260329205317.php deleted file mode 100644 index d30375b..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329205317.php +++ /dev/null @@ -1,83 +0,0 @@ -validate([ - 'login' => 'required', // bisa email / username - 'password' => 'required' - ]); - - $login = $request->login; - - // cek login pakai email atau username - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/penghuni/dashboard'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil!'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329210317.php b/.history/app/Http/Controllers/AuthController_20260329210317.php deleted file mode 100644 index 0ec2a74..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329210317.php +++ /dev/null @@ -1,82 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/penghuni/dashboard'); - } - } - - return back()->with('error', 'Login gagal!'); -} - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil!'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329210325.php b/.history/app/Http/Controllers/AuthController_20260329210325.php deleted file mode 100644 index 1079770..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329210325.php +++ /dev/null @@ -1,82 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/penghuni/dashboard'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil!'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329231035.php b/.history/app/Http/Controllers/AuthController_20260329231035.php deleted file mode 100644 index fafb09e..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329231035.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/penghuni/dashboard'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) -{ - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); -} - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329231046.php b/.history/app/Http/Controllers/AuthController_20260329231046.php deleted file mode 100644 index 1c56152..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329231046.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/penghuni/dashboard'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260329231300.php b/.history/app/Http/Controllers/AuthController_20260329231300.php deleted file mode 100644 index 58f0f9f..0000000 --- a/.history/app/Http/Controllers/AuthController_20260329231300.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/user/dashboard'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260331091231.php b/.history/app/Http/Controllers/AuthController_20260331091231.php deleted file mode 100644 index c025c3f..0000000 --- a/.history/app/Http/Controllers/AuthController_20260331091231.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/user/home'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'penghuni' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260331091824.php b/.history/app/Http/Controllers/AuthController_20260331091824.php deleted file mode 100644 index b41fdc9..0000000 --- a/.history/app/Http/Controllers/AuthController_20260331091824.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/user/home'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260331093208.php b/.history/app/Http/Controllers/AuthController_20260331093208.php deleted file mode 100644 index af46a03..0000000 --- a/.history/app/Http/Controllers/AuthController_20260331093208.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/user'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260331093226.php b/.history/app/Http/Controllers/AuthController_20260331093226.php deleted file mode 100644 index b41fdc9..0000000 --- a/.history/app/Http/Controllers/AuthController_20260331093226.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/user/home'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260331093606.php b/.history/app/Http/Controllers/AuthController_20260331093606.php deleted file mode 100644 index af46a03..0000000 --- a/.history/app/Http/Controllers/AuthController_20260331093606.php +++ /dev/null @@ -1,86 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - if (Auth::user()->role == 'admin') { - return redirect('/admin/dashboard'); - } else { - return redirect('/user'); - } - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260416110900.php b/.history/app/Http/Controllers/AuthController_20260416110900.php deleted file mode 100644 index e5c068a..0000000 --- a/.history/app/Http/Controllers/AuthController_20260416110900.php +++ /dev/null @@ -1,92 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - -if ($user->role == 'admin') { - return redirect('/admin/dashboard'); -} - -if ($user->role == 'rt') { - return redirect('/rt/iuran'); -} - -return redirect('/user/home'); - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260416110906.php b/.history/app/Http/Controllers/AuthController_20260416110906.php deleted file mode 100644 index 074e18e..0000000 --- a/.history/app/Http/Controllers/AuthController_20260416110906.php +++ /dev/null @@ -1,92 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/iuran'); - } - - return redirect('/user/home'); - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260416111106.php b/.history/app/Http/Controllers/AuthController_20260416111106.php deleted file mode 100644 index d0ea7cb..0000000 --- a/.history/app/Http/Controllers/AuthController_20260416111106.php +++ /dev/null @@ -1,96 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/iuran'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), -}; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260416111109.php b/.history/app/Http/Controllers/AuthController_20260416111109.php deleted file mode 100644 index 6dc55ac..0000000 --- a/.history/app/Http/Controllers/AuthController_20260416111109.php +++ /dev/null @@ -1,96 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/iuran'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260416121633.php b/.history/app/Http/Controllers/AuthController_20260416121633.php deleted file mode 100644 index 431ab2a..0000000 --- a/.history/app/Http/Controllers/AuthController_20260416121633.php +++ /dev/null @@ -1,96 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/das'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260416121635.php b/.history/app/Http/Controllers/AuthController_20260416121635.php deleted file mode 100644 index 9b6c5bc..0000000 --- a/.history/app/Http/Controllers/AuthController_20260416121635.php +++ /dev/null @@ -1,96 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417150500.php b/.history/app/Http/Controllers/AuthController_20260417150500.php deleted file mode 100644 index 54ae14c..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417150500.php +++ /dev/null @@ -1,101 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() -{ - return view('auth.lupa-password'); -} -} diff --git a/.history/app/Http/Controllers/AuthController_20260417150503.php b/.history/app/Http/Controllers/AuthController_20260417150503.php deleted file mode 100644 index bef6b1d..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417150503.php +++ /dev/null @@ -1,101 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417150514.php b/.history/app/Http/Controllers/AuthController_20260417150514.php deleted file mode 100644 index 32e04e2..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417150514.php +++ /dev/null @@ -1,120 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } - - use Illuminate\Support\Facades\Mail; - -public function kirimOtp(Request $request) -{ - $request->validate([ - 'email' => 'required|email|exists:users,email' - ]); - - $user = User::where('email', $request->email)->first(); - - $otp = rand(100000, 999999); - - $user->update([ - 'otp' => $otp, - 'otp_expired_at' => now()->addMinutes(5) - ]); - - // K -} diff --git a/.history/app/Http/Controllers/AuthController_20260417150516.php b/.history/app/Http/Controllers/AuthController_20260417150516.php deleted file mode 100644 index ef70339..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417150516.php +++ /dev/null @@ -1,103 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417150520.php b/.history/app/Http/Controllers/AuthController_20260417150520.php deleted file mode 100644 index 32e04e2..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417150520.php +++ /dev/null @@ -1,120 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } - - use Illuminate\Support\Facades\Mail; - -public function kirimOtp(Request $request) -{ - $request->validate([ - 'email' => 'required|email|exists:users,email' - ]); - - $user = User::where('email', $request->email)->first(); - - $otp = rand(100000, 999999); - - $user->update([ - 'otp' => $otp, - 'otp_expired_at' => now()->addMinutes(5) - ]); - - // K -} diff --git a/.history/app/Http/Controllers/AuthController_20260417150522.php b/.history/app/Http/Controllers/AuthController_20260417150522.php deleted file mode 100644 index ef70339..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417150522.php +++ /dev/null @@ -1,103 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151054.php b/.history/app/Http/Controllers/AuthController_20260417151054.php deleted file mode 100644 index 3df6338..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151054.php +++ /dev/null @@ -1,104 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151055.php b/.history/app/Http/Controllers/AuthController_20260417151055.php deleted file mode 100644 index ff28f98..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151055.php +++ /dev/null @@ -1,106 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function lupaPassword() - { - return view('auth.lupa-password'); - } - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151107.php b/.history/app/Http/Controllers/AuthController_20260417151107.php deleted file mode 100644 index dc6c79f..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151107.php +++ /dev/null @@ -1,106 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() -{ - return view('auth.forgot'); -} - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151110.php b/.history/app/Http/Controllers/AuthController_20260417151110.php deleted file mode 100644 index 6b11395..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151110.php +++ /dev/null @@ -1,106 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151119.php b/.history/app/Http/Controllers/AuthController_20260417151119.php deleted file mode 100644 index 2d6127e..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151119.php +++ /dev/null @@ -1,131 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) -{ - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); -} - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151123.php b/.history/app/Http/Controllers/AuthController_20260417151123.php deleted file mode 100644 index 964cbb1..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151123.php +++ /dev/null @@ -1,131 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151125.php b/.history/app/Http/Controllers/AuthController_20260417151125.php deleted file mode 100644 index 808b60d..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151125.php +++ /dev/null @@ -1,129 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151138.php b/.history/app/Http/Controllers/AuthController_20260417151138.php deleted file mode 100644 index 08e682b..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151138.php +++ /dev/null @@ -1,134 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() -{ - return view('auth.otp'); -} -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151140.php b/.history/app/Http/Controllers/AuthController_20260417151140.php deleted file mode 100644 index 1134bdf..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151140.php +++ /dev/null @@ -1,134 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151149.php b/.history/app/Http/Controllers/AuthController_20260417151149.php deleted file mode 100644 index efddd23..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151149.php +++ /dev/null @@ -1,157 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) -{ - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); -} -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151153.php b/.history/app/Http/Controllers/AuthController_20260417151153.php deleted file mode 100644 index cc9cd26..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151153.php +++ /dev/null @@ -1,157 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151202.php b/.history/app/Http/Controllers/AuthController_20260417151202.php deleted file mode 100644 index 9878a09..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151202.php +++ /dev/null @@ -1,162 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() -{ - return view('auth.reset'); -} -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151205.php b/.history/app/Http/Controllers/AuthController_20260417151205.php deleted file mode 100644 index a40943e..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151205.php +++ /dev/null @@ -1,162 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151213.php b/.history/app/Http/Controllers/AuthController_20260417151213.php deleted file mode 100644 index 33fe67d..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151213.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) -{ - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); -} -} diff --git a/.history/app/Http/Controllers/AuthController_20260417151218.php b/.history/app/Http/Controllers/AuthController_20260417151218.php deleted file mode 100644 index 8c3beed..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417151218.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417153713.php b/.history/app/Http/Controllers/AuthController_20260417153713.php deleted file mode 100644 index 0869c5a..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417153713.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->emails)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417153721.php b/.history/app/Http/Controllers/AuthController_20260417153721.php deleted file mode 100644 index 2b7b67f..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417153721.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->emails)->send(new OtpMail($otp)); - - session(['reset_email' => $user->emails]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417153734.php b/.history/app/Http/Controllers/AuthController_20260417153734.php deleted file mode 100644 index 33fe67d..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417153734.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) -{ - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); -} -} diff --git a/.history/app/Http/Controllers/AuthController_20260417153736.php b/.history/app/Http/Controllers/AuthController_20260417153736.php deleted file mode 100644 index 0869c5a..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417153736.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->emails)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417153737.php b/.history/app/Http/Controllers/AuthController_20260417153737.php deleted file mode 100644 index 8c3beed..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417153737.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417160012.php b/.history/app/Http/Controllers/AuthController_20260417160012.php deleted file mode 100644 index 4f5cada..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417160012.php +++ /dev/null @@ -1,189 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - try { - - Mail::to($user->email)->send(new OtpMail($otp)); - -} catch (\Exception $e) { - - dd($e->getMessage()); // 🔥 tampilkan error asli -} - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417160016.php b/.history/app/Http/Controllers/AuthController_20260417160016.php deleted file mode 100644 index bc22b41..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417160016.php +++ /dev/null @@ -1,189 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - try { - - Mail::to($user->email)->send(new OtpMail($otp)); - - } catch (\Exception $e) { - - dd($e->getMessage()); // 🔥 tampilkan error asli - } - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/AuthController_20260417160457.php b/.history/app/Http/Controllers/AuthController_20260417160457.php deleted file mode 100644 index 8c3beed..0000000 --- a/.history/app/Http/Controllers/AuthController_20260417160457.php +++ /dev/null @@ -1,182 +0,0 @@ -validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401135428.php b/.history/app/Http/Controllers/InformasiController_20260401135428.php deleted file mode 100644 index 7a24a3c..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401135428.php +++ /dev/null @@ -1,10 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401141303.php b/.history/app/Http/Controllers/InformasiController_20260401141303.php deleted file mode 100644 index cd52b7f..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401141303.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401141305.php b/.history/app/Http/Controllers/InformasiController_20260401141305.php deleted file mode 100644 index f7229fc..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401141305.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401141311.php b/.history/app/Http/Controllers/InformasiController_20260401141311.php deleted file mode 100644 index 3c88397..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401141311.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401141553.php b/.history/app/Http/Controllers/InformasiController_20260401141553.php deleted file mode 100644 index f7229fc..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401141553.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401141609.php b/.history/app/Http/Controllers/InformasiController_20260401141609.php deleted file mode 100644 index 3c88397..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401141609.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142448.php b/.history/app/Http/Controllers/InformasiController_20260401142448.php deleted file mode 100644 index 7f933bc..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142448.php +++ /dev/null @@ -1,4 +0,0 @@ -public function index() -{ - dd(view()->exists('admin.informasi.index')); -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142449.php b/.history/app/Http/Controllers/InformasiController_20260401142449.php deleted file mode 100644 index 7f933bc..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142449.php +++ /dev/null @@ -1,4 +0,0 @@ -public function index() -{ - dd(view()->exists('admin.informasi.index')); -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142452.php b/.history/app/Http/Controllers/InformasiController_20260401142452.php deleted file mode 100644 index 3c88397..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142452.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142457.php b/.history/app/Http/Controllers/InformasiController_20260401142457.php deleted file mode 100644 index 1982609..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142457.php +++ /dev/null @@ -1,24 +0,0 @@ -exists('admin.informasi.index')); -} - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - // nanti simpan ke database - return redirect()->route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142740.php b/.history/app/Http/Controllers/InformasiController_20260401142740.php deleted file mode 100644 index 583d980..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142740.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142742.php b/.history/app/Http/Controllers/InformasiController_20260401142742.php deleted file mode 100644 index 87bfabc..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142742.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260401142743.php b/.history/app/Http/Controllers/InformasiController_20260401142743.php deleted file mode 100644 index 3c88397..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260401142743.php +++ /dev/null @@ -1,24 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203115.php b/.history/app/Http/Controllers/InformasiController_20260414203115.php deleted file mode 100644 index 8bf00bc..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203115.php +++ /dev/null @@ -1,25 +0,0 @@ -route('informasi.index'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203219.php b/.history/app/Http/Controllers/InformasiController_20260414203219.php deleted file mode 100644 index 9b090a0..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203219.php +++ /dev/null @@ -1,92 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); -} - -public function create() -{ - return view('admin.informasi.create'); -} - -public function store(Request $request) -{ - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => auth()->user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); -} - -public function edit($id) -{ - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); -} - -public function update(Request $request, $id) -{ - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); -} - -public function destroy($id) -{ - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203224.php b/.history/app/Http/Controllers/InformasiController_20260414203224.php deleted file mode 100644 index 51afd94..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203224.php +++ /dev/null @@ -1,92 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); -} - -public function create() -{ - return view('admin.informasi.create'); -} - -public function store(Request $request) -{ - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => auth()->user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); -} - -public function edit($id) -{ - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); -} - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203237.php b/.history/app/Http/Controllers/InformasiController_20260414203237.php deleted file mode 100644 index 920f6bd..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203237.php +++ /dev/null @@ -1,92 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => auth()->user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203242.php b/.history/app/Http/Controllers/InformasiController_20260414203242.php deleted file mode 100644 index 02b8804..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203242.php +++ /dev/null @@ -1,93 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => auth()->user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203244.php b/.history/app/Http/Controllers/InformasiController_20260414203244.php deleted file mode 100644 index d28191c..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203244.php +++ /dev/null @@ -1,93 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => auth()->user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414203254.php b/.history/app/Http/Controllers/InformasiController_20260414203254.php deleted file mode 100644 index 476893a..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414203254.php +++ /dev/null @@ -1,93 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414204838.php b/.history/app/Http/Controllers/InformasiController_20260414204838.php deleted file mode 100644 index aa97aa8..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414204838.php +++ /dev/null @@ -1,103 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) -{ - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); -} -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414204844.php b/.history/app/Http/Controllers/InformasiController_20260414204844.php deleted file mode 100644 index 55601b7..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414204844.php +++ /dev/null @@ -1,103 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205457.php b/.history/app/Http/Controllers/InformasiController_20260414205457.php deleted file mode 100644 index 5bc311e..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205457.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205501.php b/.history/app/Http/Controllers/InformasiController_20260414205501.php deleted file mode 100644 index acdff87..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205501.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205528.php b/.history/app/Http/Controllers/InformasiController_20260414205528.php deleted file mode 100644 index 5bc311e..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205528.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205530.php b/.history/app/Http/Controllers/InformasiController_20260414205530.php deleted file mode 100644 index acdff87..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205530.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205532.php b/.history/app/Http/Controllers/InformasiController_20260414205532.php deleted file mode 100644 index 55601b7..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205532.php +++ /dev/null @@ -1,103 +0,0 @@ -get(); - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205534.php b/.history/app/Http/Controllers/InformasiController_20260414205534.php deleted file mode 100644 index ab75da8..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205534.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205535.php b/.history/app/Http/Controllers/InformasiController_20260414205535.php deleted file mode 100644 index acdff87..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205535.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205537.php b/.history/app/Http/Controllers/InformasiController_20260414205537.php deleted file mode 100644 index ab75da8..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205537.php +++ /dev/null @@ -1,105 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205545.php b/.history/app/Http/Controllers/InformasiController_20260414205545.php deleted file mode 100644 index be9139c..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205545.php +++ /dev/null @@ -1,107 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205551.php b/.history/app/Http/Controllers/InformasiController_20260414205551.php deleted file mode 100644 index c33a0a1..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205551.php +++ /dev/null @@ -1,107 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205608.php b/.history/app/Http/Controllers/InformasiController_20260414205608.php deleted file mode 100644 index 8a297f5..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205608.php +++ /dev/null @@ -1,120 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); -} - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205612.php b/.history/app/Http/Controllers/InformasiController_20260414205612.php deleted file mode 100644 index 71facd0..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205612.php +++ /dev/null @@ -1,120 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205622.php b/.history/app/Http/Controllers/InformasiController_20260414205622.php deleted file mode 100644 index 83dc1ec..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205622.php +++ /dev/null @@ -1,121 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414205624.php b/.history/app/Http/Controllers/InformasiController_20260414205624.php deleted file mode 100644 index 06d890a..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414205624.php +++ /dev/null @@ -1,121 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210047.php b/.history/app/Http/Controllers/InformasiController_20260414210047.php deleted file mode 100644 index 8554d7f..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210047.php +++ /dev/null @@ -1,127 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - - // 🔥 TARUH DI SINI (INI YANG KURANG) - $informasi = \App\Models\Informasi::latest()->get(); - - // 🔥 WAJIB TAMBAH DI COMPACT - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210049.php b/.history/app/Http/Controllers/InformasiController_20260414210049.php deleted file mode 100644 index 54a48f4..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210049.php +++ /dev/null @@ -1,123 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - - - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210050.php b/.history/app/Http/Controllers/InformasiController_20260414210050.php deleted file mode 100644 index 8554d7f..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210050.php +++ /dev/null @@ -1,127 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - - // 🔥 TARUH DI SINI (INI YANG KURANG) - $informasi = \App\Models\Informasi::latest()->get(); - - // 🔥 WAJIB TAMBAH DI COMPACT - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210118.php b/.history/app/Http/Controllers/InformasiController_20260414210118.php deleted file mode 100644 index 54a48f4..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210118.php +++ /dev/null @@ -1,123 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id)->get(); - - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id)->get(); - } - - // 🔥 TAMBAHAN INI - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - - - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210247.php b/.history/app/Http/Controllers/InformasiController_20260414210247.php deleted file mode 100644 index 8f58eb1..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210247.php +++ /dev/null @@ -1,136 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); -} - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210253.php b/.history/app/Http/Controllers/InformasiController_20260414210253.php deleted file mode 100644 index bf4dbf8..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210253.php +++ /dev/null @@ -1,136 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210306.php b/.history/app/Http/Controllers/InformasiController_20260414210306.php deleted file mode 100644 index f50eee7..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210306.php +++ /dev/null @@ -1,139 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414210307.php b/.history/app/Http/Controllers/InformasiController_20260414210307.php deleted file mode 100644 index 6b4c9b0..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414210307.php +++ /dev/null @@ -1,138 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414212011.php b/.history/app/Http/Controllers/InformasiController_20260414212011.php deleted file mode 100644 index 0517a41..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414212011.php +++ /dev/null @@ -1,139 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414212013.php b/.history/app/Http/Controllers/InformasiController_20260414212013.php deleted file mode 100644 index 6645f6d..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414212013.php +++ /dev/null @@ -1,139 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414212132.php b/.history/app/Http/Controllers/InformasiController_20260414212132.php deleted file mode 100644 index 099a9a8..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414212132.php +++ /dev/null @@ -1,139 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - $iuran = collect(); - $pengaduan = collect(); - - if ($penghuni) { - - // 🔥 DATA IURAN - $iuran = Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') - ->orderBy('bulan', 'asc') - ->get(); - - // 🔥 DATA PENGADUAN - $pengaduan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - } - - // 🔥 DATA INFORMASI (FIX ERROR DI SINI) - $informasi = Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - // 🔥 RETURN FINAL (SEMUA DATA MASUK) - return view('user.home', [ - 'penghuni' => $penghuni, - 'iuran' => $iuran, - 'pengaduan' => $pengaduan, - 'informasi' => $informasi - ]); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414222353.php b/.history/app/Http/Controllers/InformasiController_20260414222353.php deleted file mode 100644 index 53f8f87..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414222353.php +++ /dev/null @@ -1,109 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - - return view('admin.informasi.index', compact('informasi')); -} - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414222358.php b/.history/app/Http/Controllers/InformasiController_20260414222358.php deleted file mode 100644 index 7dbbd00..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414222358.php +++ /dev/null @@ -1,109 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - - // 🔥 TAMBAH VIEW DI SINI - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } -} diff --git a/.history/app/Http/Controllers/InformasiController_20260414222454.php b/.history/app/Http/Controllers/InformasiController_20260414222454.php deleted file mode 100644 index 7c9d67c..0000000 --- a/.history/app/Http/Controllers/InformasiController_20260414222454.php +++ /dev/null @@ -1,99 +0,0 @@ -orderBy('tanggal', 'desc') - ->get(); - - return view('admin.informasi.index', compact('informasi')); - } - - public function create() - { - return view('admin.informasi.create'); - } - - public function store(Request $request) - { - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - 'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $gambar = null; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - Informasi::create([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'penulis' => Auth::user()->name, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $data = Informasi::findOrFail($id); - return view('admin.informasi.edit', compact('data')); - } - - public function update(Request $request, $id) - { - $data = Informasi::findOrFail($id); - - $request->validate([ - 'judul' => 'required', - 'isi' => 'required', - 'tanggal' => 'required|date', - ]); - - $gambar = $data->gambar; - - if ($request->hasFile('gambar')) { - $file = $request->file('gambar'); - $gambar = time().'.'.$file->getClientOriginalExtension(); - $file->move(public_path('informasi'), $gambar); - } - - $data->update([ - 'judul' => $request->judul, - 'isi' => $request->isi, - 'tanggal' => $request->tanggal, - 'kategori' => $request->kategori, - 'gambar' => $gambar, - 'is_penting' => $request->is_penting ? 1 : 0, - ]); - - return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate'); - } - - public function destroy($id) - { - Informasi::findOrFail($id)->delete(); - return back()->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401133728.php b/.history/app/Http/Controllers/IuranController_20260401133728.php deleted file mode 100644 index f7cedd2..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401133728.php +++ /dev/null @@ -1,38 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'status' => 'Belum Bayar', - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401230445.php b/.history/app/Http/Controllers/IuranController_20260401230445.php deleted file mode 100644 index d29c038..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401230445.php +++ /dev/null @@ -1,81 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' -]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401230452.php b/.history/app/Http/Controllers/IuranController_20260401230452.php deleted file mode 100644 index 7b994cd..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401230452.php +++ /dev/null @@ -1,81 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401231508.php b/.history/app/Http/Controllers/IuranController_20260401231508.php deleted file mode 100644 index 7a618e7..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401231508.php +++ /dev/null @@ -1,82 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401231509.php b/.history/app/Http/Controllers/IuranController_20260401231509.php deleted file mode 100644 index 8d18b26..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401231509.php +++ /dev/null @@ -1,82 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401232213.php b/.history/app/Http/Controllers/IuranController_20260401232213.php deleted file mode 100644 index 9502e6b..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401232213.php +++ /dev/null @@ -1,83 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401233500.php b/.history/app/Http/Controllers/IuranController_20260401233500.php deleted file mode 100644 index 692d87c..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401233500.php +++ /dev/null @@ -1,86 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - public function destroy($id) -{ - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); -} - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401233505.php b/.history/app/Http/Controllers/IuranController_20260401233505.php deleted file mode 100644 index 2165479..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401233505.php +++ /dev/null @@ -1,83 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) -{ - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/IuranController_20260401233508.php b/.history/app/Http/Controllers/IuranController_20260401233508.php deleted file mode 100644 index 499d766..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401233508.php +++ /dev/null @@ -1,83 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234230.php b/.history/app/Http/Controllers/IuranController_20260401234230.php deleted file mode 100644 index ba7f42b..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234230.php +++ /dev/null @@ -1,84 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234231.php b/.history/app/Http/Controllers/IuranController_20260401234231.php deleted file mode 100644 index 4bb1b4e..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234231.php +++ /dev/null @@ -1,84 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - '' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234232.php b/.history/app/Http/Controllers/IuranController_20260401234232.php deleted file mode 100644 index adf8b66..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234232.php +++ /dev/null @@ -1,84 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - 'tanggal_bayar' => null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234240.php b/.history/app/Http/Controllers/IuranController_20260401234240.php deleted file mode 100644 index 499d766..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234240.php +++ /dev/null @@ -1,83 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234745.php b/.history/app/Http/Controllers/IuranController_20260401234745.php deleted file mode 100644 index 008db70..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234745.php +++ /dev/null @@ -1,84 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum' - 'tanggal_bayar' => $request->tanggal_bayar, // 🔥 ini penting - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234807.php b/.history/app/Http/Controllers/IuranController_20260401234807.php deleted file mode 100644 index 82e7530..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234807.php +++ /dev/null @@ -1,84 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->tanggal_bayar, // 🔥 ini penting - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234842.php b/.history/app/Http/Controllers/IuranController_20260401234842.php deleted file mode 100644 index a402051..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234842.php +++ /dev/null @@ -1,84 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234941.php b/.history/app/Http/Controllers/IuranController_20260401234941.php deleted file mode 100644 index c839963..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234941.php +++ /dev/null @@ -1,85 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234944.php b/.history/app/Http/Controllers/IuranController_20260401234944.php deleted file mode 100644 index f5434b1..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234944.php +++ /dev/null @@ -1,85 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234948.php b/.history/app/Http/Controllers/IuranController_20260401234948.php deleted file mode 100644 index 8442ecc..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234948.php +++ /dev/null @@ -1,86 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - '' - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401234950.php b/.history/app/Http/Controllers/IuranController_20260401234950.php deleted file mode 100644 index c628e8c..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401234950.php +++ /dev/null @@ -1,86 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - 'tanggal_bayar' => 'nullable|date', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401235507.php b/.history/app/Http/Controllers/IuranController_20260401235507.php deleted file mode 100644 index 212256e..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401235507.php +++ /dev/null @@ -1,85 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum' - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401235508.php b/.history/app/Http/Controllers/IuranController_20260401235508.php deleted file mode 100644 index 6c5a245..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401235508.php +++ /dev/null @@ -1,86 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401235509.php b/.history/app/Http/Controllers/IuranController_20260401235509.php deleted file mode 100644 index f5434b1..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401235509.php +++ /dev/null @@ -1,85 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260401235522.php b/.history/app/Http/Controllers/IuranController_20260401235522.php deleted file mode 100644 index f575370..0000000 --- a/.history/app/Http/Controllers/IuranController_20260401235522.php +++ /dev/null @@ -1,94 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) -{ - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); -} - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408162653.php b/.history/app/Http/Controllers/IuranController_20260408162653.php deleted file mode 100644 index b708208..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408162653.php +++ /dev/null @@ -1,106 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) -{ - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); -} - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back()->with('success', 'Pembayaran disetujui'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408171049.php b/.history/app/Http/Controllers/IuranController_20260408171049.php deleted file mode 100644 index abf5efd..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408171049.php +++ /dev/null @@ -1,106 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) -{ - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); -} - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => Carbon::now() // 🔥 otomatis waktu Indonesia - ]); - - return back()->with('success', 'Pembayaran berhasil di-approve'); -} -} diff --git a/.history/app/Http/Controllers/IuranController_20260408171058.php b/.history/app/Http/Controllers/IuranController_20260408171058.php deleted file mode 100644 index 37b1cd1..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408171058.php +++ /dev/null @@ -1,106 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) -{ - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); -} - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => Carbon::now() // 🔥 otomatis waktu Indonesia - ]); - - return back()->with('success', 'Pembayaran berhasil di-approve'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408171105.php b/.history/app/Http/Controllers/IuranController_20260408171105.php deleted file mode 100644 index e875098..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408171105.php +++ /dev/null @@ -1,106 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => Carbon::now() // 🔥 otomatis waktu Indonesia - ]); - - return back()->with('success', 'Pembayaran berhasil di-approve'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408171145.php b/.history/app/Http/Controllers/IuranController_20260408171145.php deleted file mode 100644 index 14bbb8b..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408171145.php +++ /dev/null @@ -1,107 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => Carbon::now() // 🔥 otomatis waktu Indonesia - ]); - - return back()->with('success', 'Pembayaran berhasil di-approve'); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408183056.php b/.history/app/Http/Controllers/IuranController_20260408183056.php deleted file mode 100644 index 985dc7c..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408183056.php +++ /dev/null @@ -1,114 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => Carbon::now() // 🔥 otomatis waktu Indonesia - ]); - - return back()->with('success', 'Pembayaran berhasil di-approve'); - } - - public function realtime() -{ - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); -} -} diff --git a/.history/app/Http/Controllers/IuranController_20260408183100.php b/.history/app/Http/Controllers/IuranController_20260408183100.php deleted file mode 100644 index 57080d1..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408183100.php +++ /dev/null @@ -1,114 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => Carbon::now() // 🔥 otomatis waktu Indonesia - ]); - - return back()->with('success', 'Pembayaran berhasil di-approve'); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408191457.php b/.history/app/Http/Controllers/IuranController_20260408191457.php deleted file mode 100644 index 542d7e9..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408191457.php +++ /dev/null @@ -1,114 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); -} - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260408191503.php b/.history/app/Http/Controllers/IuranController_20260408191503.php deleted file mode 100644 index 13a1fc9..0000000 --- a/.history/app/Http/Controllers/IuranController_20260408191503.php +++ /dev/null @@ -1,114 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260409101616.php b/.history/app/Http/Controllers/IuranController_20260409101616.php deleted file mode 100644 index d930748..0000000 --- a/.history/app/Http/Controllers/IuranController_20260409101616.php +++ /dev/null @@ -1,144 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) -{ - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor 08 → 62 - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - // pesan - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru telah ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Keterangan: {$request->keterangan}\n"; - $pesan .= "Silakan lakukan pembayaran ya 🙏"; - - $pesan = urlencode($pesan); - - $wa_url = "https://wa.me/{$nohp}?text={$pesan}"; - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan') - ->with('wa_url', $wa_url); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); -} - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260409101627.php b/.history/app/Http/Controllers/IuranController_20260409101627.php deleted file mode 100644 index f65b23c..0000000 --- a/.history/app/Http/Controllers/IuranController_20260409101627.php +++ /dev/null @@ -1,144 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor 08 → 62 - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - // pesan - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru telah ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Keterangan: {$request->keterangan}\n"; - $pesan .= "Silakan lakukan pembayaran ya 🙏"; - - $pesan = urlencode($pesan); - - $wa_url = "https://wa.me/{$nohp}?text={$pesan}"; - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan') - ->with('wa_url', $wa_url); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260409103436.php b/.history/app/Http/Controllers/IuranController_20260409103436.php deleted file mode 100644 index b6a2ce9..0000000 --- a/.history/app/Http/Controllers/IuranController_20260409103436.php +++ /dev/null @@ -1,145 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor 08 → 62 - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - // pesan - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru telah ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Keterangan: {$request->keterangan}\n"; - $pesan .= "Silakan lakukan pembayaran ya 🙏"; - - $pesan = urlencode($pesan); - - $wa_url = "https://wa.me/{$nohp}?text={$pesan}"; - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan') - ->with('wa_url', $wa_url); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260409103508.php b/.history/app/Http/Controllers/IuranController_20260409103508.php deleted file mode 100644 index 244c2bc..0000000 --- a/.history/app/Http/Controllers/IuranController_20260409103508.php +++ /dev/null @@ -1,145 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor 08 → 62 - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - // pesan - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru telah ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Keterangan: {$request->keterangan}\n"; - $pesan .= "Silakan lakukan pembayaran ya 🙏"; - - $pesan = urlencode($pesan); - - $wa_url = "https://wa.me/{$nohp}?text={$pesan}"; - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan') - ->with('wa_url', $wa_url); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260409103549.php b/.history/app/Http/Controllers/IuranController_20260409103549.php deleted file mode 100644 index 4fd9f9f..0000000 --- a/.history/app/Http/Controllers/IuranController_20260409103549.php +++ /dev/null @@ -1,142 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - -if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); -} - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260409103556.php b/.history/app/Http/Controllers/IuranController_20260409103556.php deleted file mode 100644 index b813a25..0000000 --- a/.history/app/Http/Controllers/IuranController_20260409103556.php +++ /dev/null @@ -1,142 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } -} diff --git a/.history/app/Http/Controllers/IuranController_20260416103015.php b/.history/app/Http/Controllers/IuranController_20260416103015.php deleted file mode 100644 index feca529..0000000 --- a/.history/app/Http/Controllers/IuranController_20260416103015.php +++ /dev/null @@ -1,144 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } - - -} diff --git a/.history/app/Http/Controllers/IuranController_20260416103016.php b/.history/app/Http/Controllers/IuranController_20260416103016.php deleted file mode 100644 index f33ee90..0000000 --- a/.history/app/Http/Controllers/IuranController_20260416103016.php +++ /dev/null @@ -1,163 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } - - public function approveRT($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'proses'; // ke admin - $iuran->save(); - - return back()->with('success', 'Disetujui RT → ke Admin'); -} - -public function approveAdmin($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'selesai'; - $iuran->tanggal_bayar = now(); - $iuran->save(); - - return back()->with('success', 'Iuran selesai'); -} -} diff --git a/.history/app/Http/Controllers/IuranController_20260416103020.php b/.history/app/Http/Controllers/IuranController_20260416103020.php deleted file mode 100644 index 788bc8f..0000000 --- a/.history/app/Http/Controllers/IuranController_20260416103020.php +++ /dev/null @@ -1,164 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } - - public function approveRT($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'proses'; // ke admin - $iuran->save(); - - return back()->with('success', 'Disetujui RT → ke Admin'); -} - -public function approveAdmin($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'selesai'; - $iuran->tanggal_bayar = now(); - $iuran->save(); - - return back()->with('success', 'Iuran selesai'); -} - -} diff --git a/.history/app/Http/Controllers/IuranController_20260416121252.php b/.history/app/Http/Controllers/IuranController_20260416121252.php deleted file mode 100644 index 966484e..0000000 --- a/.history/app/Http/Controllers/IuranController_20260416121252.php +++ /dev/null @@ -1,165 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } - - public function approveRT($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'proses'; // ke admin - $iuran->save(); - - return back()->with('success', 'Disetujui RT → ke Admin'); -} - -public function approveAdmin($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'selesai'; - $iuran->tanggal_bayar = now(); - $iuran->save(); - - return back()->with('success', 'Iuran selesai'); -} - - -} diff --git a/.history/app/Http/Controllers/IuranController_20260416121253.php b/.history/app/Http/Controllers/IuranController_20260416121253.php deleted file mode 100644 index f1ab764..0000000 --- a/.history/app/Http/Controllers/IuranController_20260416121253.php +++ /dev/null @@ -1,186 +0,0 @@ -get(); // relasi ke penghuni - return view('admin.iuran.index', compact('iuran')); - } - - public function create() - { - $penghuni = Penghuni::all(); // ambil data penghuni - return view('admin.iuran.create', compact('penghuni')); - } - - public function store(Request $request) - { - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', - ]); - - Iuran::create([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ - 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, - ]); - - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= - - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); - - if ($penghuni && $penghuni->telepon) { - - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } - - return redirect()->route('iuran.index') - ->with('success', 'Data iuran berhasil ditambahkan'); - } - - public function edit($id) - { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); - - return view('admin.iuran.edit', compact('iuran', 'penghuni')); - } - - public function update(Request $request, $id) - { - $iuran = Iuran::findOrFail($id); - - $request->validate([ - 'penghuni_id' => 'required', - 'bulan' => 'required', - 'tahun' => 'required', - 'jumlah' => 'required', - 'jenis_iuran' => 'required', - 'keterangan' => 'required', - 'status' => 'required', - ]); - - $iuran->update([ - 'penghuni_id' => $request->penghuni_id, - 'bulan' => $request->bulan, - 'tahun' => $request->tahun, - 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, - 'keterangan' => $request->keterangan, - 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, - ]); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); - } - - public function destroy($id) - { - $iuran = Iuran::findOrFail($id); - $iuran->delete(); - - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back(); - } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } - - public function approveRT($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'proses'; // ke admin - $iuran->save(); - - return back()->with('success', 'Disetujui RT → ke Admin'); -} - -public function approveAdmin($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'selesai'; - $iuran->tanggal_bayar = now(); - $iuran->save(); - - return back()->with('success', 'Iuran selesai'); -} - -public function dashboardRT() -{ - // total data - $totalPenghuni = \App\Models\Penghuni::count(); - $totalIuran = \App\Models\Iuran::count(); - $totalPengaduan = \App\Models\Layanan::count(); - - // status khusus RT - $menungguRT = \App\Models\Iuran::where('status', 'belum') - ->whereNotNull('bukti_pembayaran') - ->count(); - - $menungguAdmin = \App\Models\Iuran::where('status', 'proses')->count(); - - return view('rt.dashboard', compact( - 'totalPenghuni', - 'totalIuran', - 'totalPengaduan', - 'menungguRT', - 'menungguAdmin' - )); -} -} diff --git a/.history/app/Http/Controllers/LaporanController_20260401140018.php b/.history/app/Http/Controllers/LaporanController_20260401140018.php deleted file mode 100644 index 9204a48..0000000 --- a/.history/app/Http/Controllers/LaporanController_20260401140018.php +++ /dev/null @@ -1,10 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status, - 'tanggal_tanggapan' => now() - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/LayananController_20260329201010.php b/.history/app/Http/Controllers/LayananController_20260329201010.php deleted file mode 100644 index 4d255cf..0000000 --- a/.history/app/Http/Controllers/LayananController_20260329201010.php +++ /dev/null @@ -1,50 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status -]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/LayananController_20260329201014.php b/.history/app/Http/Controllers/LayananController_20260329201014.php deleted file mode 100644 index e6b42a8..0000000 --- a/.history/app/Http/Controllers/LayananController_20260329201014.php +++ /dev/null @@ -1,50 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135238.php b/.history/app/Http/Controllers/LayananController_20260410135238.php deleted file mode 100644 index b48eb38..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135238.php +++ /dev/null @@ -1,67 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required', - 'status' => 'required' - ]); - - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); -} -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135243.php b/.history/app/Http/Controllers/LayananController_20260410135243.php deleted file mode 100644 index 67a3dfd..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135243.php +++ /dev/null @@ -1,67 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapi(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required', - 'status' => 'required' - ]); - - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135345.php b/.history/app/Http/Controllers/LayananController_20260410135345.php deleted file mode 100644 index 68f21e3..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135345.php +++ /dev/null @@ -1,73 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); -} -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135352.php b/.history/app/Http/Controllers/LayananController_20260410135352.php deleted file mode 100644 index ddc2f0e..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135352.php +++ /dev/null @@ -1,73 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135404.php b/.history/app/Http/Controllers/LayananController_20260410135404.php deleted file mode 100644 index 68f21e3..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135404.php +++ /dev/null @@ -1,73 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); -} -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135406.php b/.history/app/Http/Controllers/LayananController_20260410135406.php deleted file mode 100644 index 7ffc5e2..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135406.php +++ /dev/null @@ -1,52 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135415.php b/.history/app/Http/Controllers/LayananController_20260410135415.php deleted file mode 100644 index 0cc4143..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135415.php +++ /dev/null @@ -1,42 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - use Illuminate\Http\Request; - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135417.php b/.history/app/Http/Controllers/LayananController_20260410135417.php deleted file mode 100644 index 30a5e1b..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135417.php +++ /dev/null @@ -1,52 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->update([ - 'tanggapan_admin' => $request->tanggapan_admin, - 'status' => $request->status - ]); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135425.php b/.history/app/Http/Controllers/LayananController_20260410135425.php deleted file mode 100644 index 1404261..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135425.php +++ /dev/null @@ -1,63 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); -} - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260410135430.php b/.history/app/Http/Controllers/LayananController_20260410135430.php deleted file mode 100644 index e29d856..0000000 --- a/.history/app/Http/Controllers/LayananController_20260410135430.php +++ /dev/null @@ -1,63 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413212930.php b/.history/app/Http/Controllers/LayananController_20260413212930.php deleted file mode 100644 index f773879..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413212930.php +++ /dev/null @@ -1,65 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413213000.php b/.history/app/Http/Controllers/LayananController_20260413213000.php deleted file mode 100644 index 277169a..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413213000.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, -Pengaduan Anda telah ditanggapi. - -Status: {$layanan->status} -Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); -} - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413213007.php b/.history/app/Http/Controllers/LayananController_20260413213007.php deleted file mode 100644 index cd8c786..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413213007.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413234812.php b/.history/app/Http/Controllers/LayananController_20260413234812.php deleted file mode 100644 index 277169a..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413234812.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, -Pengaduan Anda telah ditanggapi. - -Status: {$layanan->status} -Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); -} - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413234815.php b/.history/app/Http/Controllers/LayananController_20260413234815.php deleted file mode 100644 index cd8c786..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413234815.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413234817.php b/.history/app/Http/Controllers/LayananController_20260413234817.php deleted file mode 100644 index 277169a..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413234817.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, -Pengaduan Anda telah ditanggapi. - -Status: {$layanan->status} -Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); -} - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260413234821.php b/.history/app/Http/Controllers/LayananController_20260413234821.php deleted file mode 100644 index cd8c786..0000000 --- a/.history/app/Http/Controllers/LayananController_20260413234821.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414134731.php b/.history/app/Http/Controllers/LayananController_20260414134731.php deleted file mode 100644 index 77a4f17..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414134731.php +++ /dev/null @@ -1,90 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414134735.php b/.history/app/Http/Controllers/LayananController_20260414134735.php deleted file mode 100644 index 0ba2f56..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414134735.php +++ /dev/null @@ -1,90 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414134800.php b/.history/app/Http/Controllers/LayananController_20260414134800.php deleted file mode 100644 index cd8c786..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414134800.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414134803.php b/.history/app/Http/Controllers/LayananController_20260414134803.php deleted file mode 100644 index 77a4f17..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414134803.php +++ /dev/null @@ -1,90 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414134805.php b/.history/app/Http/Controllers/LayananController_20260414134805.php deleted file mode 100644 index fa5b0e9..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414134805.php +++ /dev/null @@ -1,90 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414134807.php b/.history/app/Http/Controllers/LayananController_20260414134807.php deleted file mode 100644 index 0ba2f56..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414134807.php +++ /dev/null @@ -1,90 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135005.php b/.history/app/Http/Controllers/LayananController_20260414135005.php deleted file mode 100644 index cd8c786..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135005.php +++ /dev/null @@ -1,89 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135023.php b/.history/app/Http/Controllers/LayananController_20260414135023.php deleted file mode 100644 index 1611ce6..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135023.php +++ /dev/null @@ -1,90 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135109.php b/.history/app/Http/Controllers/LayananController_20260414135109.php deleted file mode 100644 index 83dd68a..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135109.php +++ /dev/null @@ -1,107 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135113.php b/.history/app/Http/Controllers/LayananController_20260414135113.php deleted file mode 100644 index f2c454b..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135113.php +++ /dev/null @@ -1,107 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135615.php b/.history/app/Http/Controllers/LayananController_20260414135615.php deleted file mode 100644 index 8081faa..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135615.php +++ /dev/null @@ -1,107 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - // return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135931.php b/.history/app/Http/Controllers/LayananController_20260414135931.php deleted file mode 100644 index 19fecaa..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135931.php +++ /dev/null @@ -1,108 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - // return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA terkirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135933.php b/.history/app/Http/Controllers/LayananController_20260414135933.php deleted file mode 100644 index 8081faa..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135933.php +++ /dev/null @@ -1,107 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - // return redirect($wa); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135939.php b/.history/app/Http/Controllers/LayananController_20260414135939.php deleted file mode 100644 index b401c91..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135939.php +++ /dev/null @@ -1,108 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA terkirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414135943.php b/.history/app/Http/Controllers/LayananController_20260414135943.php deleted file mode 100644 index 6688442..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414135943.php +++ /dev/null @@ -1,108 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA terkirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414140721.php b/.history/app/Http/Controllers/LayananController_20260414140721.php deleted file mode 100644 index 0037e12..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414140721.php +++ /dev/null @@ -1,93 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'ISI_TOKEN_FONNTE_KAMU' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414140728.php b/.history/app/Http/Controllers/LayananController_20260414140728.php deleted file mode 100644 index fac83c3..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414140728.php +++ /dev/null @@ -1,92 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'ISI_TOKEN_FONNTE_KAMU' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414140729.php b/.history/app/Http/Controllers/LayananController_20260414140729.php deleted file mode 100644 index 6688442..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414140729.php +++ /dev/null @@ -1,108 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) - { - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'TOKEN_KAMU_DISINI' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // 🔥 ========================= - // 🔥 KIRIM EMAIL KE USER - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 ========================= - // 🔥 WHATSAPP OTOMATIS - // 🔥 ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $pesan = "Halo {$layanan->penghuni->nama}, - Pengaduan Anda telah ditanggapi. - - Status: {$layanan->status} - Tanggapan: {$layanan->tanggapan_admin}"; - - $wa = "https://wa.me/62" . ltrim($layanan->penghuni->telepon, '0') . "?text=" . urlencode($pesan); - - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA terkirim'); - } - - return back()->with('success', 'Tanggapan berhasil diberikan & notifikasi dikirim'); - } - - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414140739.php b/.history/app/Http/Controllers/LayananController_20260414140739.php deleted file mode 100644 index 0037e12..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414140739.php +++ /dev/null @@ -1,93 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'ISI_TOKEN_FONNTE_KAMU' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414141024.php b/.history/app/Http/Controllers/LayananController_20260414141024.php deleted file mode 100644 index 58a67be..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414141024.php +++ /dev/null @@ -1,93 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "Halo {$layanan->penghuni->nama},\n" - . "Pengaduan Anda telah ditanggapi.\n" - . "Status: {$layanan->status}\n" - . "Tanggapan: {$layanan->tanggapan_admin}"; - - Http::withHeaders([ - 'Authorization' => 'chpBEnbbsP7BEZQnZ6jj' - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260414142202.php b/.history/app/Http/Controllers/LayananController_20260414142202.php deleted file mode 100644 index c8c852c..0000000 --- a/.history/app/Http/Controllers/LayananController_20260414142202.php +++ /dev/null @@ -1,127 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416103050.php b/.history/app/Http/Controllers/LayananController_20260416103050.php deleted file mode 100644 index c533cdc..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416103050.php +++ /dev/null @@ -1,153 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - - $layanan->save(); - - return back()->with('success', 'Ditanggapi RT → ke Admin'); -} - -public function approveAdmin($id) -{ - $layanan = Layanan::findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - return back()->with('success', 'Pengaduan selesai'); -} - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416103056.php b/.history/app/Http/Controllers/LayananController_20260416103056.php deleted file mode 100644 index 8fbaae5..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416103056.php +++ /dev/null @@ -1,153 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - - $layanan->save(); - - return back()->with('success', 'Ditanggapi RT → ke Admin'); - } - - public function approveAdmin($id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - return back()->with('success', 'Pengaduan selesai'); - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416163826.php b/.history/app/Http/Controllers/LayananController_20260416163826.php deleted file mode 100644 index b7ee32a..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416163826.php +++ /dev/null @@ -1,200 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - - $layanan->save(); - - return back()->with('success', 'Ditanggapi RT → ke Admin'); - } - - public function approveAdmin($id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - return back()->with('success', 'Pengaduan selesai'); - } - - private function kirimNotif($layanan) -{ - if (!$layanan->penghuni) return; - - $nama = $layanan->penghuni->nama; - $statusText = $layanan->status == 'selesai' - ? '✅ SELESAI' - : '⏳ DIPROSES'; - - // ===================== - // 🔥 WHATSAPP - // ===================== - if ($layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *UPDATE PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *$nama* 👋\n\n"; - $pesan .= "Status pengaduan Anda telah diperbarui.\n\n"; - - $pesan .= "📌 Status : *$statusText*\n"; - $pesan .= "💬 Tanggapan : {$layanan->tanggapan_admin}\n\n"; - - $pesan .= "🙏 Terima kasih\n"; - $pesan .= "🏡 Green View Residence"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ===================== - // 🔥 EMAIL - // ===================== - if ($layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } -} - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416163840.php b/.history/app/Http/Controllers/LayananController_20260416163840.php deleted file mode 100644 index e4ff722..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416163840.php +++ /dev/null @@ -1,200 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - - $layanan->save(); - - return back()->with('success', 'Ditanggapi RT → ke Admin'); - } - - public function approveAdmin($id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - return back()->with('success', 'Pengaduan selesai'); - } - - private function kirimNotif($layanan) - { - if (!$layanan->penghuni) return; - - $nama = $layanan->penghuni->nama; - $statusText = $layanan->status == 'selesai' - ? '✅ SELESAI' - : '⏳ DIPROSES'; - - // ===================== - // 🔥 WHATSAPP - // ===================== - if ($layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *UPDATE PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *$nama* 👋\n\n"; - $pesan .= "Status pengaduan Anda telah diperbarui.\n\n"; - - $pesan .= "📌 Status : *$statusText*\n"; - $pesan .= "💬 Tanggapan : {$layanan->tanggapan_admin}\n\n"; - - $pesan .= "🙏 Terima kasih\n"; - $pesan .= "🏡 Green View Residence"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ===================== - // 🔥 EMAIL - // ===================== - if ($layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416163859.php b/.history/app/Http/Controllers/LayananController_20260416163859.php deleted file mode 100644 index 8dae96f..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416163859.php +++ /dev/null @@ -1,202 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::with('penghuni')->findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - $layanan->save(); - - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); - - return back()->with('success', 'Ditanggapi RT + Notif terkirim'); -} - - public function approveAdmin($id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - return back()->with('success', 'Pengaduan selesai'); - } - - private function kirimNotif($layanan) - { - if (!$layanan->penghuni) return; - - $nama = $layanan->penghuni->nama; - $statusText = $layanan->status == 'selesai' - ? '✅ SELESAI' - : '⏳ DIPROSES'; - - // ===================== - // 🔥 WHATSAPP - // ===================== - if ($layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *UPDATE PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *$nama* 👋\n\n"; - $pesan .= "Status pengaduan Anda telah diperbarui.\n\n"; - - $pesan .= "📌 Status : *$statusText*\n"; - $pesan .= "💬 Tanggapan : {$layanan->tanggapan_admin}\n\n"; - - $pesan .= "🙏 Terima kasih\n"; - $pesan .= "🏡 Green View Residence"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ===================== - // 🔥 EMAIL - // ===================== - if ($layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416163903.php b/.history/app/Http/Controllers/LayananController_20260416163903.php deleted file mode 100644 index 224145a..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416163903.php +++ /dev/null @@ -1,202 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::with('penghuni')->findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - $layanan->save(); - - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); - - return back()->with('success', 'Ditanggapi RT + Notif terkirim'); - } - - public function approveAdmin($id) - { - $layanan = Layanan::findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - return back()->with('success', 'Pengaduan selesai'); - } - - private function kirimNotif($layanan) - { - if (!$layanan->penghuni) return; - - $nama = $layanan->penghuni->nama; - $statusText = $layanan->status == 'selesai' - ? '✅ SELESAI' - : '⏳ DIPROSES'; - - // ===================== - // 🔥 WHATSAPP - // ===================== - if ($layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *UPDATE PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *$nama* 👋\n\n"; - $pesan .= "Status pengaduan Anda telah diperbarui.\n\n"; - - $pesan .= "📌 Status : *$statusText*\n"; - $pesan .= "💬 Tanggapan : {$layanan->tanggapan_admin}\n\n"; - - $pesan .= "🙏 Terima kasih\n"; - $pesan .= "🏡 Green View Residence"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ===================== - // 🔥 EMAIL - // ===================== - if ($layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416163916.php b/.history/app/Http/Controllers/LayananController_20260416163916.php deleted file mode 100644 index bc42be6..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416163916.php +++ /dev/null @@ -1,205 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::with('penghuni')->findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - $layanan->save(); - - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); - - return back()->with('success', 'Ditanggapi RT + Notif terkirim'); - } - - public function approveAdmin($id) -{ - $layanan = Layanan::with('penghuni')->findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); - - return back()->with('success', 'Disetujui Admin + Notif terkirim'); -} - - private function kirimNotif($layanan) - { - if (!$layanan->penghuni) return; - - $nama = $layanan->penghuni->nama; - $statusText = $layanan->status == 'selesai' - ? '✅ SELESAI' - : '⏳ DIPROSES'; - - // ===================== - // 🔥 WHATSAPP - // ===================== - if ($layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *UPDATE PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *$nama* 👋\n\n"; - $pesan .= "Status pengaduan Anda telah diperbarui.\n\n"; - - $pesan .= "📌 Status : *$statusText*\n"; - $pesan .= "💬 Tanggapan : {$layanan->tanggapan_admin}\n\n"; - - $pesan .= "🙏 Terima kasih\n"; - $pesan .= "🏡 Green View Residence"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ===================== - // 🔥 EMAIL - // ===================== - if ($layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - } - - -} diff --git a/.history/app/Http/Controllers/LayananController_20260416163921.php b/.history/app/Http/Controllers/LayananController_20260416163921.php deleted file mode 100644 index 3f374c2..0000000 --- a/.history/app/Http/Controllers/LayananController_20260416163921.php +++ /dev/null @@ -1,205 +0,0 @@ -latest()->get(); - $penghuni = Penghuni::all(); - - return view('admin.layanan.index', compact('layanan', 'penghuni')); - } - - public function store(Request $request) - { - Layanan::create([ - 'penghuni_id' => $request->penghuni_id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return back()->with('success', 'Pengaduan berhasil ditambahkan'); - } - - public function tanggapi(Request $request, $id) -{ - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - $layanan = Layanan::with('penghuni')->find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - // ========================= - // 🔥 WHATSAPP AUTO (FONNTE) - // ========================= - if ($layanan->penghuni && $layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $status = $layanan->status == 'selesai' - ? '✅ Selesai' - : '⏳ Sedang Diproses'; - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *NOTIFIKASI PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *{$layanan->penghuni->nama}* 👋\n\n"; - - $pesan .= "Terima kasih telah menggunakan layanan pengaduan kami 🙏\n"; - $pesan .= "Kami ingin menginformasikan bahwa laporan Anda telah ditindaklanjuti oleh admin.\n\n"; - - $pesan .= "📌 *DETAIL PENGADUAN ANDA*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "🗂️ Status Saat Ini : *$status*\n"; - $pesan .= "📅 Tanggal Tanggapan : " . now()->format('d-m-Y H:i') . "\n\n"; - - $pesan .= "💬 *TANGGAPAN ADMIN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "{$layanan->tanggapan_admin}\n\n"; - - $pesan .= "📢 *INFORMASI TAMBAHAN*\n"; - $pesan .= "──────────────────────\n"; - $pesan .= "• Tim kami sedang berupaya memberikan pelayanan terbaik\n"; - $pesan .= "• Jika status *selesai*, maka pengaduan Anda telah ditangani\n"; - $pesan .= "• Jika masih diproses, mohon menunggu sebentar ya 🙏\n\n"; - - $pesan .= "📲 *CEK STATUS SECARA LANGSUNG*\n"; - $pesan .= "Klik link berikut untuk melihat detail lengkap:\n"; - $pesan .= url('/') . "\n\n"; - - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "🙏 Terima kasih atas kepercayaan Anda\n"; - $pesan .= "🏡 *Green View Residence*\n"; - $pesan .= "✨ Sistem Informasi Perumahan Modern\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); -} - - // ========================= - // 🔥 EMAIL - // ========================= - if ($layanan->penghuni && $layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - - // 🔥 RETURN NORMAL (TIDAK REDIRECT WA) - return redirect()->route('layanan.index') - ->with('success', 'Tanggapan berhasil dikirim + WA otomatis terkirim'); -} - public function destroy($id) - { - Layanan::findOrFail($id)->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } - - public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); - - $layanan = Layanan::with('penghuni')->findOrFail($id); - - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - $layanan->save(); - - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); - - return back()->with('success', 'Ditanggapi RT + Notif terkirim'); - } - - public function approveAdmin($id) - { - $layanan = Layanan::with('penghuni')->findOrFail($id); - - $layanan->status = 'selesai'; - $layanan->save(); - - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); - - return back()->with('success', 'Disetujui Admin + Notif terkirim'); - } - - private function kirimNotif($layanan) - { - if (!$layanan->penghuni) return; - - $nama = $layanan->penghuni->nama; - $statusText = $layanan->status == 'selesai' - ? '✅ SELESAI' - : '⏳ DIPROSES'; - - // ===================== - // 🔥 WHATSAPP - // ===================== - if ($layanan->penghuni->telepon) { - - $no = preg_replace('/^0/', '62', $layanan->penghuni->telepon); - - $pesan = "🏡 *GREEN VIEW RESIDENCE*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n"; - $pesan .= "📢 *UPDATE PENGADUAN*\n"; - $pesan .= "━━━━━━━━━━━━━━━━━━━━━━\n\n"; - - $pesan .= "Halo *$nama* 👋\n\n"; - $pesan .= "Status pengaduan Anda telah diperbarui.\n\n"; - - $pesan .= "📌 Status : *$statusText*\n"; - $pesan .= "💬 Tanggapan : {$layanan->tanggapan_admin}\n\n"; - - $pesan .= "🙏 Terima kasih\n"; - $pesan .= "🏡 Green View Residence"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $no, - 'message' => $pesan, - ]); - } - - // ===================== - // 🔥 EMAIL - // ===================== - if ($layanan->penghuni->email) { - Mail::to($layanan->penghuni->email) - ->send(new NotifPengaduan($layanan)); - } - } - - -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151633.php b/.history/app/Http/Controllers/ProfileController_20260401151633.php deleted file mode 100644 index 815a14c..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151633.php +++ /dev/null @@ -1,10 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151653.php b/.history/app/Http/Controllers/ProfileController_20260401151653.php deleted file mode 100644 index 8c42012..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151653.php +++ /dev/null @@ -1,26 +0,0 @@ -use Illuminate\Support\Facades\Hash; -use Illuminate\Support\Facades\Auth; - -public function update(Request $request) -{ - $user = Auth::user(); - - $request->validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151654.php b/.history/app/Http/Controllers/ProfileController_20260401151654.php deleted file mode 100644 index 815a14c..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151654.php +++ /dev/null @@ -1,10 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151701.php b/.history/app/Http/Controllers/ProfileController_20260401151701.php deleted file mode 100644 index 815a14c..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151701.php +++ /dev/null @@ -1,10 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151708.php b/.history/app/Http/Controllers/ProfileController_20260401151708.php deleted file mode 100644 index 815a14c..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151708.php +++ /dev/null @@ -1,10 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151718.php b/.history/app/Http/Controllers/ProfileController_20260401151718.php deleted file mode 100644 index 3dae2de..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151718.php +++ /dev/null @@ -1,33 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151720.php b/.history/app/Http/Controllers/ProfileController_20260401151720.php deleted file mode 100644 index 9a45f30..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151720.php +++ /dev/null @@ -1,32 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151724.php b/.history/app/Http/Controllers/ProfileController_20260401151724.php deleted file mode 100644 index 9d7941f..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151724.php +++ /dev/null @@ -1,34 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151731.php b/.history/app/Http/Controllers/ProfileController_20260401151731.php deleted file mode 100644 index 5f544c5..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151731.php +++ /dev/null @@ -1,34 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401151858.php b/.history/app/Http/Controllers/ProfileController_20260401151858.php deleted file mode 100644 index cd02f9e..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401151858.php +++ /dev/null @@ -1,35 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152210.php b/.history/app/Http/Controllers/ProfileController_20260401152210.php deleted file mode 100644 index f2429f6..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152210.php +++ /dev/null @@ -1,36 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152213.php b/.history/app/Http/Controllers/ProfileController_20260401152213.php deleted file mode 100644 index 51139ce..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152213.php +++ /dev/null @@ -1,36 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152345.php b/.history/app/Http/Controllers/ProfileController_20260401152345.php deleted file mode 100644 index 1bcfee4..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152345.php +++ /dev/null @@ -1,38 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152346.php b/.history/app/Http/Controllers/ProfileController_20260401152346.php deleted file mode 100644 index e0fc5fb..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152346.php +++ /dev/null @@ -1,39 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152348.php b/.history/app/Http/Controllers/ProfileController_20260401152348.php deleted file mode 100644 index ca2e931..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152348.php +++ /dev/null @@ -1,38 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152350.php b/.history/app/Http/Controllers/ProfileController_20260401152350.php deleted file mode 100644 index 6d639cc..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152350.php +++ /dev/null @@ -1,41 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152354.php b/.history/app/Http/Controllers/ProfileController_20260401152354.php deleted file mode 100644 index 6930cd4..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152354.php +++ /dev/null @@ -1,41 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401152356.php b/.history/app/Http/Controllers/ProfileController_20260401152356.php deleted file mode 100644 index 304ca7b..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401152356.php +++ /dev/null @@ -1,40 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153749.php b/.history/app/Http/Controllers/ProfileController_20260401153749.php deleted file mode 100644 index 6930cd4..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153749.php +++ /dev/null @@ -1,41 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153751.php b/.history/app/Http/Controllers/ProfileController_20260401153751.php deleted file mode 100644 index ca2e931..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153751.php +++ /dev/null @@ -1,38 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153753.php b/.history/app/Http/Controllers/ProfileController_20260401153753.php deleted file mode 100644 index 6d639cc..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153753.php +++ /dev/null @@ -1,41 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153758.php b/.history/app/Http/Controllers/ProfileController_20260401153758.php deleted file mode 100644 index 51139ce..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153758.php +++ /dev/null @@ -1,36 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153759.php b/.history/app/Http/Controllers/ProfileController_20260401153759.php deleted file mode 100644 index 58e2e82..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153759.php +++ /dev/null @@ -1,36 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153940.php b/.history/app/Http/Controllers/ProfileController_20260401153940.php deleted file mode 100644 index 4a89a1b..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153940.php +++ /dev/null @@ -1,37 +0,0 @@ -user(); - - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153946.php b/.history/app/Http/Controllers/ProfileController_20260401153946.php deleted file mode 100644 index 51139ce..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153946.php +++ /dev/null @@ -1,36 +0,0 @@ -validate([ - 'name' => 'required', - 'email' => 'required|email', - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = Hash::make($request->password); - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401153959.php b/.history/app/Http/Controllers/ProfileController_20260401153959.php deleted file mode 100644 index 4a89a1b..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401153959.php +++ /dev/null @@ -1,37 +0,0 @@ -user(); - - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401154004.php b/.history/app/Http/Controllers/ProfileController_20260401154004.php deleted file mode 100644 index 9013153..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401154004.php +++ /dev/null @@ -1,61 +0,0 @@ -user(); - - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} - - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401154005.php b/.history/app/Http/Controllers/ProfileController_20260401154005.php deleted file mode 100644 index 4a89a1b..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401154005.php +++ /dev/null @@ -1,37 +0,0 @@ -user(); - - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401154009.php b/.history/app/Http/Controllers/ProfileController_20260401154009.php deleted file mode 100644 index 3b115a6..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401154009.php +++ /dev/null @@ -1,38 +0,0 @@ -validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401154017.php b/.history/app/Http/Controllers/ProfileController_20260401154017.php deleted file mode 100644 index 1d9b7af..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401154017.php +++ /dev/null @@ -1,38 +0,0 @@ -validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401155201.php b/.history/app/Http/Controllers/ProfileController_20260401155201.php deleted file mode 100644 index 2795995..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401155201.php +++ /dev/null @@ -1,63 +0,0 @@ -validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } - - public function uploadPhoto(Request $request) -{ - $request->validate([ - 'photo' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $user = auth()->user(); - - // hapus foto lama (opsional tapi bagus) - if ($user->photo && file_exists(public_path('profile/'.$user->photo))) { - unlink(public_path('profile/'.$user->photo)); - } - - $file = $request->file('photo'); - $filename = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('profile'), $filename); - - $user->update([ - 'photo' => $filename - ]); - - return back()->with('success', 'Foto berhasil diupload'); -} -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401155209.php b/.history/app/Http/Controllers/ProfileController_20260401155209.php deleted file mode 100644 index d4414c4..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401155209.php +++ /dev/null @@ -1,63 +0,0 @@ -validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } - - public function uploadPhoto(Request $request) - { - $request->validate([ - 'photo' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $user = auth()->user(); - - // hapus foto lama (opsional tapi bagus) - if ($user->photo && file_exists(public_path('profile/'.$user->photo))) { - unlink(public_path('profile/'.$user->photo)); - } - - $file = $request->file('photo'); - $filename = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('profile'), $filename); - - $user->update([ - 'photo' => $filename - ]); - - return back()->with('success', 'Foto berhasil diupload'); - } -} diff --git a/.history/app/Http/Controllers/ProfileController_20260401155220.php b/.history/app/Http/Controllers/ProfileController_20260401155220.php deleted file mode 100644 index 18c7e2b..0000000 --- a/.history/app/Http/Controllers/ProfileController_20260401155220.php +++ /dev/null @@ -1,64 +0,0 @@ -validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username,' . $user->id, - 'email' => 'required|email|unique:users,email,' . $user->id, - 'password' => 'nullable|confirmed|min:6' - ]); - - $data = [ - 'name' => $request->name, - 'username' => $request->username, - 'email' => $request->email, - ]; - - if ($request->password) { - $data['password'] = $request->password; // auto hash dari model kamu ✅ - } - - $user->update($data); - - return back()->with('success', 'Profile berhasil diupdate'); - } - - public function uploadPhoto(Request $request) - { - $request->validate([ - 'photo' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - /** @var \App\Models\User $user */ - $user = Auth::user(); - - // hapus foto lama (opsional tapi bagus) - if ($user->photo && file_exists(public_path('profile/'.$user->photo))) { - unlink(public_path('profile/'.$user->photo)); - } - - $file = $request->file('photo'); - $filename = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('profile'), $filename); - - $user->update([ - 'photo' => $filename - ]); - - return back()->with('success', 'Foto berhasil diupload'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331090519.php b/.history/app/Http/Controllers/UserController_20260331090519.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/app/Http/Controllers/UserController_20260331090523.php b/.history/app/Http/Controllers/UserController_20260331090523.php deleted file mode 100644 index 0717aea..0000000 --- a/.history/app/Http/Controllers/UserController_20260331090523.php +++ /dev/null @@ -1,87 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - return view('user.rumah', compact('penghuni')); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331094633.php b/.history/app/Http/Controllers/UserController_20260331094633.php deleted file mode 100644 index 0b035d2..0000000 --- a/.history/app/Http/Controllers/UserController_20260331094633.php +++ /dev/null @@ -1,90 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - public function index() -{ - return view('user.home'); -} - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - return view('user.rumah', compact('penghuni')); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331094635.php b/.history/app/Http/Controllers/UserController_20260331094635.php deleted file mode 100644 index 0717aea..0000000 --- a/.history/app/Http/Controllers/UserController_20260331094635.php +++ /dev/null @@ -1,87 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - return view('user.rumah', compact('penghuni')); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331094703.php b/.history/app/Http/Controllers/UserController_20260331094703.php deleted file mode 100644 index e10327c..0000000 --- a/.history/app/Http/Controllers/UserController_20260331094703.php +++ /dev/null @@ -1,87 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - return view('user.rumah', compact('penghuni')); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331094707.php b/.history/app/Http/Controllers/UserController_20260331094707.php deleted file mode 100644 index 34b9ae6..0000000 --- a/.history/app/Http/Controllers/UserController_20260331094707.php +++ /dev/null @@ -1,87 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home'); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - return view('user.rumah', compact('penghuni')); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331100106.php b/.history/app/Http/Controllers/UserController_20260331100106.php deleted file mode 100644 index 0717aea..0000000 --- a/.history/app/Http/Controllers/UserController_20260331100106.php +++ /dev/null @@ -1,87 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - return view('user.rumah', compact('penghuni')); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331111639.php b/.history/app/Http/Controllers/UserController_20260331111639.php deleted file mode 100644 index 0ad0a29..0000000 --- a/.history/app/Http/Controllers/UserController_20260331111639.php +++ /dev/null @@ -1,127 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN: ambil rumah kosong - $rumahKosong = Rumah::where('status', 'Kosong')->get(); - - return view('user.rumah', compact('penghuni', 'rumahKosong')); - } - - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331112731.php b/.history/app/Http/Controllers/UserController_20260331112731.php deleted file mode 100644 index b2df4b0..0000000 --- a/.history/app/Http/Controllers/UserController_20260331112731.php +++ /dev/null @@ -1,126 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() -{ - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); -} - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331112736.php b/.history/app/Http/Controllers/UserController_20260331112736.php deleted file mode 100644 index 78b4461..0000000 --- a/.history/app/Http/Controllers/UserController_20260331112736.php +++ /dev/null @@ -1,126 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331114133.php b/.history/app/Http/Controllers/UserController_20260331114133.php deleted file mode 100644 index fd01148..0000000 --- a/.history/app/Http/Controllers/UserController_20260331114133.php +++ /dev/null @@ -1,158 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return back()->with('success', 'Rumah berhasil dipilih'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331114143.php b/.history/app/Http/Controllers/UserController_20260331114143.php deleted file mode 100644 index 3ec8c5e..0000000 --- a/.history/app/Http/Controllers/UserController_20260331114143.php +++ /dev/null @@ -1,158 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return back()->with('success', 'Rumah berhasil dipilih'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331115635.php b/.history/app/Http/Controllers/UserController_20260331115635.php deleted file mode 100644 index b9cfdaf..0000000 --- a/.history/app/Http/Controllers/UserController_20260331115635.php +++ /dev/null @@ -1,159 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331115638.php b/.history/app/Http/Controllers/UserController_20260331115638.php deleted file mode 100644 index 28612bb..0000000 --- a/.history/app/Http/Controllers/UserController_20260331115638.php +++ /dev/null @@ -1,159 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331123821.php b/.history/app/Http/Controllers/UserController_20260331123821.php deleted file mode 100644 index 7376714..0000000 --- a/.history/app/Http/Controllers/UserController_20260331123821.php +++ /dev/null @@ -1,174 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331123826.php b/.history/app/Http/Controllers/UserController_20260331123826.php deleted file mode 100644 index 763da7c..0000000 --- a/.history/app/Http/Controllers/UserController_20260331123826.php +++ /dev/null @@ -1,174 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331124234.php b/.history/app/Http/Controllers/UserController_20260331124234.php deleted file mode 100644 index 4aa5a0a..0000000 --- a/.history/app/Http/Controllers/UserController_20260331124234.php +++ /dev/null @@ -1,182 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331124240.php b/.history/app/Http/Controllers/UserController_20260331124240.php deleted file mode 100644 index 8ba31df..0000000 --- a/.history/app/Http/Controllers/UserController_20260331124240.php +++ /dev/null @@ -1,182 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331125522.php b/.history/app/Http/Controllers/UserController_20260331125522.php deleted file mode 100644 index 336cde2..0000000 --- a/.history/app/Http/Controllers/UserController_20260331125522.php +++ /dev/null @@ -1,183 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - '' - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331125525.php b/.history/app/Http/Controllers/UserController_20260331125525.php deleted file mode 100644 index b2a7d95..0000000 --- a/.history/app/Http/Controllers/UserController_20260331125525.php +++ /dev/null @@ -1,183 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status' - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331125528.php b/.history/app/Http/Controllers/UserController_20260331125528.php deleted file mode 100644 index 84bbeb8..0000000 --- a/.history/app/Http/Controllers/UserController_20260331125528.php +++ /dev/null @@ -1,183 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'statushu' - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331125531.php b/.history/app/Http/Controllers/UserController_20260331125531.php deleted file mode 100644 index b2a7d95..0000000 --- a/.history/app/Http/Controllers/UserController_20260331125531.php +++ /dev/null @@ -1,183 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status' - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331125532.php b/.history/app/Http/Controllers/UserController_20260331125532.php deleted file mode 100644 index 6c35e87..0000000 --- a/.history/app/Http/Controllers/UserController_20260331125532.php +++ /dev/null @@ -1,183 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331133422.php b/.history/app/Http/Controllers/UserController_20260331133422.php deleted file mode 100644 index 17de759..0000000 --- a/.history/app/Http/Controllers/UserController_20260331133422.php +++ /dev/null @@ -1,199 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331133431.php b/.history/app/Http/Controllers/UserController_20260331133431.php deleted file mode 100644 index 63c1734..0000000 --- a/.history/app/Http/Controllers/UserController_20260331133431.php +++ /dev/null @@ -1,199 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331141250.php b/.history/app/Http/Controllers/UserController_20260331141250.php deleted file mode 100644 index cf3894c..0000000 --- a/.history/app/Http/Controllers/UserController_20260331141250.php +++ /dev/null @@ -1,200 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331141435.php b/.history/app/Http/Controllers/UserController_20260331141435.php deleted file mode 100644 index cd18b2e..0000000 --- a/.history/app/Http/Controllers/UserController_20260331141435.php +++ /dev/null @@ -1,200 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331153727.php b/.history/app/Http/Controllers/UserController_20260331153727.php deleted file mode 100644 index 6697ab3..0000000 --- a/.history/app/Http/Controllers/UserController_20260331153727.php +++ /dev/null @@ -1,202 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - -} diff --git a/.history/app/Http/Controllers/UserController_20260331153735.php b/.history/app/Http/Controllers/UserController_20260331153735.php deleted file mode 100644 index 8de083b..0000000 --- a/.history/app/Http/Controllers/UserController_20260331153735.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', auth()->user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154251.php b/.history/app/Http/Controllers/UserController_20260331154251.php deleted file mode 100644 index aad3b5c..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154251.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email; - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154255.php b/.history/app/Http/Controllers/UserController_20260331154255.php deleted file mode 100644 index 8de083b..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154255.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', auth()->user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154301.php b/.history/app/Http/Controllers/UserController_20260331154301.php deleted file mode 100644 index 5647c04..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154301.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', ; -auth()->user()->email)->first() - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154302.php b/.history/app/Http/Controllers/UserController_20260331154302.php deleted file mode 100644 index 8de083b..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154302.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', auth()->user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154307.php b/.history/app/Http/Controllers/UserController_20260331154307.php deleted file mode 100644 index 6dfcf57..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154307.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154333.php b/.history/app/Http/Controllers/UserController_20260331154333.php deleted file mode 100644 index a2e0d65..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154333.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email()->emailfirst(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154340.php b/.history/app/Http/Controllers/UserController_20260331154340.php deleted file mode 100644 index 6dfcf57..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154340.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154349.php b/.history/app/Http/Controllers/UserController_20260331154349.php deleted file mode 100644 index d771d6c..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154349.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154357.php b/.history/app/Http/Controllers/UserController_20260331154357.php deleted file mode 100644 index ae67086..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154357.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email()); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331154419.php b/.history/app/Http/Controllers/UserController_20260331154419.php deleted file mode 100644 index cab3351..0000000 --- a/.history/app/Http/Controllers/UserController_20260331154419.php +++ /dev/null @@ -1,230 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // ambil semua rumah - $rumah = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumah')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331155249.php b/.history/app/Http/Controllers/UserController_20260331155249.php deleted file mode 100644 index fd8198d..0000000 --- a/.history/app/Http/Controllers/UserController_20260331155249.php +++ /dev/null @@ -1,236 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331164755.php b/.history/app/Http/Controllers/UserController_20260331164755.php deleted file mode 100644 index 169b3bd..0000000 --- a/.history/app/Http/Controllers/UserController_20260331164755.php +++ /dev/null @@ -1,268 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) -{ - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - -public function storeRumah(Request $request) -{ - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331164813.php b/.history/app/Http/Controllers/UserController_20260331164813.php deleted file mode 100644 index 02462fd..0000000 --- a/.history/app/Http/Controllers/UserController_20260331164813.php +++ /dev/null @@ -1,268 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - -public function storeRumah(Request $request) -{ - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331164815.php b/.history/app/Http/Controllers/UserController_20260331164815.php deleted file mode 100644 index 1dcdd5e..0000000 --- a/.history/app/Http/Controllers/UserController_20260331164815.php +++ /dev/null @@ -1,268 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - -public function storeRumah(Request $request) -{ - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331164825.php b/.history/app/Http/Controllers/UserController_20260331164825.php deleted file mode 100644 index 81fc25a..0000000 --- a/.history/app/Http/Controllers/UserController_20260331164825.php +++ /dev/null @@ -1,268 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331171727.php b/.history/app/Http/Controllers/UserController_20260331171727.php deleted file mode 100644 index af61dc3..0000000 --- a/.history/app/Http/Controllers/UserController_20260331171727.php +++ /dev/null @@ -1,270 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - -} diff --git a/.history/app/Http/Controllers/UserController_20260331171730.php b/.history/app/Http/Controllers/UserController_20260331171730.php deleted file mode 100644 index 2bf73dc..0000000 --- a/.history/app/Http/Controllers/UserController_20260331171730.php +++ /dev/null @@ -1,309 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO BARU - if ($request->hasFile('foto')) { - - // hapus foto lama (optional tapi bagus) - if ($rumah->foto && file_exists(public_path('foto_rumah/' . $rumah->foto))) { - unlink(public_path('foto_rumah/' . $rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 UPDATE FOTO - } - - // update data lainnya - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331171737.php b/.history/app/Http/Controllers/UserController_20260331171737.php deleted file mode 100644 index a70bccd..0000000 --- a/.history/app/Http/Controllers/UserController_20260331171737.php +++ /dev/null @@ -1,309 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO BARU - if ($request->hasFile('foto')) { - - // hapus foto lama (optional tapi bagus) - if ($rumah->foto && file_exists(public_path('foto_rumah/' . $rumah->foto))) { - unlink(public_path('foto_rumah/' . $rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 UPDATE FOTO - } - - // update data lainnya - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331171746.php b/.history/app/Http/Controllers/UserController_20260331171746.php deleted file mode 100644 index 7d2de72..0000000 --- a/.history/app/Http/Controllers/UserController_20260331171746.php +++ /dev/null @@ -1,309 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO BARU - if ($request->hasFile('foto')) { - - // hapus foto lama (optional tapi bagus) - if ($rumah->foto && file_exists(public_path('foto_rumah/' . $rumah->foto))) { - unlink(public_path('foto_rumah/' . $rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 UPDATE FOTO - } - - // update data lainnya - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331173823.php b/.history/app/Http/Controllers/UserController_20260331173823.php deleted file mode 100644 index 84e643d..0000000 --- a/.history/app/Http/Controllers/UserController_20260331173823.php +++ /dev/null @@ -1,270 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - -} diff --git a/.history/app/Http/Controllers/UserController_20260331173825.php b/.history/app/Http/Controllers/UserController_20260331173825.php deleted file mode 100644 index 81fc25a..0000000 --- a/.history/app/Http/Controllers/UserController_20260331173825.php +++ /dev/null @@ -1,268 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260331175154.php b/.history/app/Http/Controllers/UserController_20260331175154.php deleted file mode 100644 index 7852a0c..0000000 --- a/.history/app/Http/Controllers/UserController_20260331175154.php +++ /dev/null @@ -1,284 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) -{ - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260331175205.php b/.history/app/Http/Controllers/UserController_20260331175205.php deleted file mode 100644 index 0317402..0000000 --- a/.history/app/Http/Controllers/UserController_20260331175205.php +++ /dev/null @@ -1,284 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260401105632.php b/.history/app/Http/Controllers/UserController_20260401105632.php deleted file mode 100644 index 07afccb..0000000 --- a/.history/app/Http/Controllers/UserController_20260401105632.php +++ /dev/null @@ -1,286 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - -} diff --git a/.history/app/Http/Controllers/UserController_20260401105634.php b/.history/app/Http/Controllers/UserController_20260401105634.php deleted file mode 100644 index f6436b8..0000000 --- a/.history/app/Http/Controllers/UserController_20260401105634.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= -// UPLOAD PEMBAYARAN -// ========================= -public function uploadPembayaran() -{ - return view('user.upload_pembayaran'); -} - -// ========================= -// STATUS PEMBAYARAN -// ========================= -public function statusPembayaran() -{ - return view('user.status_pembayaran'); -} - -// ========================= -// STATUS PENGADUAN -// ========================= -public function statusPengaduan() -{ - return view('user.status_pengaduan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260401105642.php b/.history/app/Http/Controllers/UserController_20260401105642.php deleted file mode 100644 index fb9791f..0000000 --- a/.history/app/Http/Controllers/UserController_20260401105642.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260401152452.php b/.history/app/Http/Controllers/UserController_20260401152452.php deleted file mode 100644 index 7f9bee7..0000000 --- a/.history/app/Http/Controllers/UserController_20260401152452.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260401152502.php b/.history/app/Http/Controllers/UserController_20260401152502.php deleted file mode 100644 index fb9791f..0000000 --- a/.history/app/Http/Controllers/UserController_20260401152502.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260401152917.php b/.history/app/Http/Controllers/UserController_20260401152917.php deleted file mode 100644 index 6a40f60..0000000 --- a/.history/app/Http/Controllers/UserController_20260401152917.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260401153805.php b/.history/app/Http/Controllers/UserController_20260401153805.php deleted file mode 100644 index fb9791f..0000000 --- a/.history/app/Http/Controllers/UserController_20260401153805.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260401153807.php b/.history/app/Http/Controllers/UserController_20260401153807.php deleted file mode 100644 index f6436b8..0000000 --- a/.history/app/Http/Controllers/UserController_20260401153807.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= -// UPLOAD PEMBAYARAN -// ========================= -public function uploadPembayaran() -{ - return view('user.upload_pembayaran'); -} - -// ========================= -// STATUS PEMBAYARAN -// ========================= -public function statusPembayaran() -{ - return view('user.status_pembayaran'); -} - -// ========================= -// STATUS PENGADUAN -// ========================= -public function statusPengaduan() -{ - return view('user.status_pengaduan'); -} -} diff --git a/.history/app/Http/Controllers/UserController_20260401153809.php b/.history/app/Http/Controllers/UserController_20260401153809.php deleted file mode 100644 index 6a40f60..0000000 --- a/.history/app/Http/Controllers/UserController_20260401153809.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260408163211.php b/.history/app/Http/Controllers/UserController_20260408163211.php deleted file mode 100644 index b31a832..0000000 --- a/.history/app/Http/Controllers/UserController_20260408163211.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - public function uploadPembayaran() - { - return view('user.upload_pembayaran'); - } - - // ========================= - // STATUS PEMBAYARAN - // ========================= - public function statusPembayaran() - { - return view('user.status_pembayaran'); - } - - // ========================= - // STATUS PENGADUAN - // ========================= - public function statusPengaduan() - { - return view('user.status_pengaduan'); - } -} diff --git a/.history/app/Http/Controllers/UserController_20260408163226.php b/.history/app/Http/Controllers/UserController_20260408163226.php deleted file mode 100644 index 6fb4772..0000000 --- a/.history/app/Http/Controllers/UserController_20260408163226.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408194012.php b/.history/app/Http/Controllers/UserController_20260408194012.php deleted file mode 100644 index 8ccf91a..0000000 --- a/.history/app/Http/Controllers/UserController_20260408194012.php +++ /dev/null @@ -1,316 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->latest() - ->first(); - } - - return view('user.home', compact('penghuni', 'iuran')); - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408194015.php b/.history/app/Http/Controllers/UserController_20260408194015.php deleted file mode 100644 index 6fb4772..0000000 --- a/.history/app/Http/Controllers/UserController_20260408194015.php +++ /dev/null @@ -1,308 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408194020.php b/.history/app/Http/Controllers/UserController_20260408194020.php deleted file mode 100644 index 08290fc..0000000 --- a/.history/app/Http/Controllers/UserController_20260408194020.php +++ /dev/null @@ -1,317 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->latest() - ->first(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408194025.php b/.history/app/Http/Controllers/UserController_20260408194025.php deleted file mode 100644 index ea5c1d1..0000000 --- a/.history/app/Http/Controllers/UserController_20260408194025.php +++ /dev/null @@ -1,317 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->latest() - ->first(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408213245.php b/.history/app/Http/Controllers/UserController_20260408213245.php deleted file mode 100644 index 72cf442..0000000 --- a/.history/app/Http/Controllers/UserController_20260408213245.php +++ /dev/null @@ -1,319 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - -if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('created_at', 'desc') - ->get(); -} - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408213249.php b/.history/app/Http/Controllers/UserController_20260408213249.php deleted file mode 100644 index f5c2ed5..0000000 --- a/.history/app/Http/Controllers/UserController_20260408213249.php +++ /dev/null @@ -1,319 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('created_at', 'desc') - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408213750.php b/.history/app/Http/Controllers/UserController_20260408213750.php deleted file mode 100644 index ea3985a..0000000 --- a/.history/app/Http/Controllers/UserController_20260408213750.php +++ /dev/null @@ -1,319 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408213754.php b/.history/app/Http/Controllers/UserController_20260408213754.php deleted file mode 100644 index f5c2ed5..0000000 --- a/.history/app/Http/Controllers/UserController_20260408213754.php +++ /dev/null @@ -1,319 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('created_at', 'desc') - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408213800.php b/.history/app/Http/Controllers/UserController_20260408213800.php deleted file mode 100644 index 8df431c..0000000 --- a/.history/app/Http/Controllers/UserController_20260408213800.php +++ /dev/null @@ -1,320 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260408213803.php b/.history/app/Http/Controllers/UserController_20260408213803.php deleted file mode 100644 index 7be4354..0000000 --- a/.history/app/Http/Controllers/UserController_20260408213803.php +++ /dev/null @@ -1,320 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409092121.php b/.history/app/Http/Controllers/UserController_20260409092121.php deleted file mode 100644 index b773aab..0000000 --- a/.history/app/Http/Controllers/UserController_20260409092121.php +++ /dev/null @@ -1,323 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); -} - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409092125.php b/.history/app/Http/Controllers/UserController_20260409092125.php deleted file mode 100644 index ca923df..0000000 --- a/.history/app/Http/Controllers/UserController_20260409092125.php +++ /dev/null @@ -1,323 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409105935.php b/.history/app/Http/Controllers/UserController_20260409105935.php deleted file mode 100644 index c2cb425..0000000 --- a/.history/app/Http/Controllers/UserController_20260409105935.php +++ /dev/null @@ -1,333 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI -if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409105939.php b/.history/app/Http/Controllers/UserController_20260409105939.php deleted file mode 100644 index 343c836..0000000 --- a/.history/app/Http/Controllers/UserController_20260409105939.php +++ /dev/null @@ -1,325 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409110003.php b/.history/app/Http/Controllers/UserController_20260409110003.php deleted file mode 100644 index 6f392f7..0000000 --- a/.history/app/Http/Controllers/UserController_20260409110003.php +++ /dev/null @@ -1,334 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI -if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); -} - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409110009.php b/.history/app/Http/Controllers/UserController_20260409110009.php deleted file mode 100644 index 0c81b63..0000000 --- a/.history/app/Http/Controllers/UserController_20260409110009.php +++ /dev/null @@ -1,334 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409110845.php b/.history/app/Http/Controllers/UserController_20260409110845.php deleted file mode 100644 index c378ae8..0000000 --- a/.history/app/Http/Controllers/UserController_20260409110845.php +++ /dev/null @@ -1,335 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409110852.php b/.history/app/Http/Controllers/UserController_20260409110852.php deleted file mode 100644 index 0c81b63..0000000 --- a/.history/app/Http/Controllers/UserController_20260409110852.php +++ /dev/null @@ -1,334 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409110855.php b/.history/app/Http/Controllers/UserController_20260409110855.php deleted file mode 100644 index c9ccb02..0000000 --- a/.history/app/Http/Controllers/UserController_20260409110855.php +++ /dev/null @@ -1,335 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'no_ktp' => rand(1000000000000000, 9999999999999999), - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - // 🔥 VALIDASI DINAMIS - $rules = [ - 'nama' => 'required', - 'no_ktp' => 'required', - 'status_huni' => 'required', - ]; - - if ($request->status_huni == 'Kontrak') { - $rules['tanggal_keluar'] = 'required|date'; - } - - $request->validate($rules); - - Penghuni::create([ - 'nama' => $request->nama, - 'no_ktp' => $request->no_ktp, - 'email' => Auth::user()->email, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk ?? now(), - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409112716.php b/.history/app/Http/Controllers/UserController_20260409112716.php deleted file mode 100644 index 8cd2084..0000000 --- a/.history/app/Http/Controllers/UserController_20260409112716.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'no_ktp' => rand(1000000000000000, 9999999999999999), - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - 'nama' => $request->nama, - 'email' => auth()->user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409112723.php b/.history/app/Http/Controllers/UserController_20260409112723.php deleted file mode 100644 index f549f54..0000000 --- a/.history/app/Http/Controllers/UserController_20260409112723.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'no_ktp' => rand(1000000000000000, 9999999999999999), - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - 'nama' => $request->nama, - 'email' => auth()->user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409112936.php b/.history/app/Http/Controllers/UserController_20260409112936.php deleted file mode 100644 index 0ef4728..0000000 --- a/.history/app/Http/Controllers/UserController_20260409112936.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - if (!$penghuni) { - $penghuni = \App\Models\Penghuni::create([ - 'nama' => Auth::user()->name, - 'no_ktp' => rand(1000000000000000, 9999999999999999), - 'email' => Auth::user()->email, - 'telepon' => '-', - 'alamat' => '-', - 'status_huni' => 'Kontrak', - ]); - } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409113306.php b/.history/app/Http/Controllers/UserController_20260409113306.php deleted file mode 100644 index b8275d2..0000000 --- a/.history/app/Http/Controllers/UserController_20260409113306.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409114422.php b/.history/app/Http/Controllers/UserController_20260409114422.php deleted file mode 100644 index 29943da..0000000 --- a/.history/app/Http/Controllers/UserController_20260409114422.php +++ /dev/null @@ -1,333 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA -if (!$penghuni) { - $penghuni = null; -} - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260409114426.php b/.history/app/Http/Controllers/UserController_20260409114426.php deleted file mode 100644 index 509e230..0000000 --- a/.history/app/Http/Controllers/UserController_20260409114426.php +++ /dev/null @@ -1,333 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) - { - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); - } - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260413234959.php b/.history/app/Http/Controllers/UserController_20260413234959.php deleted file mode 100644 index ae0b3e6..0000000 --- a/.history/app/Http/Controllers/UserController_20260413234959.php +++ /dev/null @@ -1,336 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260413235343.php b/.history/app/Http/Controllers/UserController_20260413235343.php deleted file mode 100644 index 7d7e072..0000000 --- a/.history/app/Http/Controllers/UserController_20260413235343.php +++ /dev/null @@ -1,336 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260413235436.php b/.history/app/Http/Controllers/UserController_20260413235436.php deleted file mode 100644 index 8be620b..0000000 --- a/.history/app/Http/Controllers/UserController_20260413235436.php +++ /dev/null @@ -1,340 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260413235557.php b/.history/app/Http/Controllers/UserController_20260413235557.php deleted file mode 100644 index bed0a68..0000000 --- a/.history/app/Http/Controllers/UserController_20260413235557.php +++ /dev/null @@ -1,344 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414000512.php b/.history/app/Http/Controllers/UserController_20260414000512.php deleted file mode 100644 index 5d5dfba..0000000 --- a/.history/app/Http/Controllers/UserController_20260414000512.php +++ /dev/null @@ -1,342 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -} - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414000514.php b/.history/app/Http/Controllers/UserController_20260414000514.php deleted file mode 100644 index bed0a68..0000000 --- a/.history/app/Http/Controllers/UserController_20260414000514.php +++ /dev/null @@ -1,344 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414000526.php b/.history/app/Http/Controllers/UserController_20260414000526.php deleted file mode 100644 index b1f20e8..0000000 --- a/.history/app/Http/Controllers/UserController_20260414000526.php +++ /dev/null @@ -1,340 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414000531.php b/.history/app/Http/Controllers/UserController_20260414000531.php deleted file mode 100644 index 71593ee..0000000 --- a/.history/app/Http/Controllers/UserController_20260414000531.php +++ /dev/null @@ -1,338 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -} - - // kalau belum ada, buat otomatis - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414000535.php b/.history/app/Http/Controllers/UserController_20260414000535.php deleted file mode 100644 index bed0a68..0000000 --- a/.history/app/Http/Controllers/UserController_20260414000535.php +++ /dev/null @@ -1,344 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414000546.php b/.history/app/Http/Controllers/UserController_20260414000546.php deleted file mode 100644 index c1c84c3..0000000 --- a/.history/app/Http/Controllers/UserController_20260414000546.php +++ /dev/null @@ -1,344 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414001716.php b/.history/app/Http/Controllers/UserController_20260414001716.php deleted file mode 100644 index b2dbdb9..0000000 --- a/.history/app/Http/Controllers/UserController_20260414001716.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - // 🔥 Ambil penghuni berdasarkan user login - $penghuni = \App\Models\Penghuni::where('user_id', auth()->id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // 🔥 UPDATE penghuni -> isi rumah_id - $penghuni->rumah_id = $request->rumah_id; - $penghuni->save(); - - // 🔥 UPDATE status rumah jadi TERISI - \App\Models\Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - - return redirect()->route('user.home') - ->with('success', 'Rumah berhasil dipilih!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414001722.php b/.history/app/Http/Controllers/UserController_20260414001722.php deleted file mode 100644 index c1c84c3..0000000 --- a/.history/app/Http/Controllers/UserController_20260414001722.php +++ /dev/null @@ -1,344 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414001732.php b/.history/app/Http/Controllers/UserController_20260414001732.php deleted file mode 100644 index b2dbdb9..0000000 --- a/.history/app/Http/Controllers/UserController_20260414001732.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - // 🔥 Ambil penghuni berdasarkan user login - $penghuni = \App\Models\Penghuni::where('user_id', auth()->id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // 🔥 UPDATE penghuni -> isi rumah_id - $penghuni->rumah_id = $request->rumah_id; - $penghuni->save(); - - // 🔥 UPDATE status rumah jadi TERISI - \App\Models\Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - - return redirect()->route('user.home') - ->with('success', 'Rumah berhasil dipilih!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414001747.php b/.history/app/Http/Controllers/UserController_20260414001747.php deleted file mode 100644 index acaf308..0000000 --- a/.history/app/Http/Controllers/UserController_20260414001747.php +++ /dev/null @@ -1,328 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - // 🔥 Ambil penghuni berdasarkan user login - $penghuni = \App\Models\Penghuni::where('user_id', Auth::id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // 🔥 UPDATE penghuni -> isi rumah_id - $penghuni->rumah_id = $request->rumah_id; - $penghuni->save(); - - // 🔥 UPDATE status rumah jadi TERISI - \App\Models\Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - - return redirect()->route('user.home') - ->with('success', 'Rumah berhasil dipilih!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414001853.php b/.history/app/Http/Controllers/UserController_20260414001853.php deleted file mode 100644 index c1c84c3..0000000 --- a/.history/app/Http/Controllers/UserController_20260414001853.php +++ /dev/null @@ -1,344 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) - { - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ jika sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // ambil penghuni login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // update rumah jadi terisi - $rumah->update([ - 'status' => 'Terisi' - ]); - - // hubungkan ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002126.php b/.history/app/Http/Controllers/UserController_20260414002126.php deleted file mode 100644 index f33046b..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002126.php +++ /dev/null @@ -1,357 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 ambil penghuni dari user login - $penghuni = Penghuni::where('user_id', auth()->id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - // 🔥 TRANSAKSI BIAR AMAN - \DB::transaction(function () use ($rumah, $penghuni) { - - // update rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - // update penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002128.php b/.history/app/Http/Controllers/UserController_20260414002128.php deleted file mode 100644 index f33046b..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002128.php +++ /dev/null @@ -1,357 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 ambil penghuni dari user login - $penghuni = Penghuni::where('user_id', auth()->id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - // 🔥 TRANSAKSI BIAR AMAN - \DB::transaction(function () use ($rumah, $penghuni) { - - // update rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - // update penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002228.php b/.history/app/Http/Controllers/UserController_20260414002228.php deleted file mode 100644 index 417ea43..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002228.php +++ /dev/null @@ -1,357 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 ambil penghuni dari user login - $penghuni = Penghuni::where('user_id', Auth::id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - // 🔥 TRANSAKSI BIAR AMAN - \DB::transaction(function () use ($rumah, $penghuni) { - - // update rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - // update penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002234.php b/.history/app/Http/Controllers/UserController_20260414002234.php deleted file mode 100644 index 52076e0..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002234.php +++ /dev/null @@ -1,358 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 ambil penghuni dari user login - $penghuni = Penghuni::where('user_id', Auth::id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - // 🔥 TRANSAKSI BIAR AMAN - \DB::transaction(function () use ($rumah, $penghuni) { - - // update rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - // update penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002250.php b/.history/app/Http/Controllers/UserController_20260414002250.php deleted file mode 100644 index 08b49bc..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002250.php +++ /dev/null @@ -1,358 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 ambil penghuni dari user login - $penghuni = Penghuni::where('user_id', Auth::id())->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - // 🔥 TRANSAKSI BIAR AMAN - DB::transaction(function () use ($rumah, $penghuni) { - - // update rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - // update penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002556.php b/.history/app/Http/Controllers/UserController_20260414002556.php deleted file mode 100644 index 764e1ca..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002556.php +++ /dev/null @@ -1,358 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 ambil penghuni dari user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - // 🔥 TRANSAKSI BIAR AMAN - DB::transaction(function () use ($rumah, $penghuni) { - - // update rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - // update penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002616.php b/.history/app/Http/Controllers/UserController_20260414002616.php deleted file mode 100644 index 308bcb4..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002616.php +++ /dev/null @@ -1,348 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 pakai email (tanpa user_id) - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - \DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414002831.php b/.history/app/Http/Controllers/UserController_20260414002831.php deleted file mode 100644 index eeca6bd..0000000 --- a/.history/app/Http/Controllers/UserController_20260414002831.php +++ /dev/null @@ -1,348 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - // ❌ kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - // 🔥 pakai email (tanpa user_id) - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - // ❌ kalau sudah punya rumah - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414003138.php b/.history/app/Http/Controllers/UserController_20260414003138.php deleted file mode 100644 index 81aa998..0000000 --- a/.history/app/Http/Controllers/UserController_20260414003138.php +++ /dev/null @@ -1,345 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function simpanRumah(Request $request) -{ - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return redirect()->route('user.home') - ->with('error', 'Isi data penghuni dulu!'); - } - - // kalau belum ada rumah → create - $rumah = Rumah::updateOrCreate( - ['id' => $request->rumah_id], - [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => 'Terisi', - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ] - ); - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - return redirect()->route('user.rumah') - ->with('success', 'Rumah berhasil dipilih'); - } - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414003411.php b/.history/app/Http/Controllers/UserController_20260414003411.php deleted file mode 100644 index 07c4e4c..0000000 --- a/.history/app/Http/Controllers/UserController_20260414003411.php +++ /dev/null @@ -1,335 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414003422.php b/.history/app/Http/Controllers/UserController_20260414003422.php deleted file mode 100644 index cb5cb08..0000000 --- a/.history/app/Http/Controllers/UserController_20260414003422.php +++ /dev/null @@ -1,335 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414003707.php b/.history/app/Http/Controllers/UserController_20260414003707.php deleted file mode 100644 index 1801197..0000000 --- a/.history/app/Http/Controllers/UserController_20260414003707.php +++ /dev/null @@ -1,335 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - DB::transaction(function () use ($rumah, $penghuni) { - $rumah->update(['status' => 'Terisi']); - $penghuni->update(['rumah_id' => $rumah->id]); - }); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414003721.php b/.history/app/Http/Controllers/UserController_20260414003721.php deleted file mode 100644 index 3d45327..0000000 --- a/.history/app/Http/Controllers/UserController_20260414003721.php +++ /dev/null @@ -1,336 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414003722.php b/.history/app/Http/Controllers/UserController_20260414003722.php deleted file mode 100644 index 3d45327..0000000 --- a/.history/app/Http/Controllers/UserController_20260414003722.php +++ /dev/null @@ -1,336 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414144603.php b/.history/app/Http/Controllers/UserController_20260414144603.php deleted file mode 100644 index 6b00c96..0000000 --- a/.history/app/Http/Controllers/UserController_20260414144603.php +++ /dev/null @@ -1,338 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414144629.php b/.history/app/Http/Controllers/UserController_20260414144629.php deleted file mode 100644 index 8a0d8dc..0000000 --- a/.history/app/Http/Controllers/UserController_20260414144629.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - -if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); -} - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414144635.php b/.history/app/Http/Controllers/UserController_20260414144635.php deleted file mode 100644 index 803b5c7..0000000 --- a/.history/app/Http/Controllers/UserController_20260414144635.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414144654.php b/.history/app/Http/Controllers/UserController_20260414144654.php deleted file mode 100644 index b2f2f57..0000000 --- a/.history/app/Http/Controllers/UserController_20260414144654.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145213.php b/.history/app/Http/Controllers/UserController_20260414145213.php deleted file mode 100644 index 2d78a90..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145213.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145215.php b/.history/app/Http/Controllers/UserController_20260414145215.php deleted file mode 100644 index b2f2f57..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145215.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145407.php b/.history/app/Http/Controllers/UserController_20260414145407.php deleted file mode 100644 index e0de999..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145407.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145409.php b/.history/app/Http/Controllers/UserController_20260414145409.php deleted file mode 100644 index 3fe7228..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145409.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145411.php b/.history/app/Http/Controllers/UserController_20260414145411.php deleted file mode 100644 index b2f2f57..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145411.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) // 🔥 INI PENTING - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145420.php b/.history/app/Http/Controllers/UserController_20260414145420.php deleted file mode 100644 index 6e3252f..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145420.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - -if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); -} - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414145424.php b/.history/app/Http/Controllers/UserController_20260414145424.php deleted file mode 100644 index f1e4d13..0000000 --- a/.history/app/Http/Controllers/UserController_20260414145424.php +++ /dev/null @@ -1,347 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414214139.php b/.history/app/Http/Controllers/UserController_20260414214139.php deleted file mode 100644 index 76b9a46..0000000 --- a/.history/app/Http/Controllers/UserController_20260414214139.php +++ /dev/null @@ -1,352 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) -$informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414214143.php b/.history/app/Http/Controllers/UserController_20260414214143.php deleted file mode 100644 index d40f16a..0000000 --- a/.history/app/Http/Controllers/UserController_20260414214143.php +++ /dev/null @@ -1,352 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414214200.php b/.history/app/Http/Controllers/UserController_20260414214200.php deleted file mode 100644 index 429c684..0000000 --- a/.history/app/Http/Controllers/UserController_20260414214200.php +++ /dev/null @@ -1,352 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414222428.php b/.history/app/Http/Controllers/UserController_20260414222428.php deleted file mode 100644 index bcd1cec..0000000 --- a/.history/app/Http/Controllers/UserController_20260414222428.php +++ /dev/null @@ -1,360 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) -{ - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); -} - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414222433.php b/.history/app/Http/Controllers/UserController_20260414222433.php deleted file mode 100644 index 590f1da..0000000 --- a/.history/app/Http/Controllers/UserController_20260414222433.php +++ /dev/null @@ -1,360 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414222438.php b/.history/app/Http/Controllers/UserController_20260414222438.php deleted file mode 100644 index 04c7f53..0000000 --- a/.history/app/Http/Controllers/UserController_20260414222438.php +++ /dev/null @@ -1,361 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260414222439.php b/.history/app/Http/Controllers/UserController_20260414222439.php deleted file mode 100644 index 97805bd..0000000 --- a/.history/app/Http/Controllers/UserController_20260414222439.php +++ /dev/null @@ -1,361 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416184440.php b/.history/app/Http/Controllers/UserController_20260416184440.php deleted file mode 100644 index 4f8b2ce..0000000 --- a/.history/app/Http/Controllers/UserController_20260416184440.php +++ /dev/null @@ -1,367 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 INI KUNCI UTAMA - $data['tanggal_masuk'] = now(); - - // 🔥 EMAIL DARI USER LOGIN - $data['email'] = auth()->user()->email; - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416185230.php b/.history/app/Http/Controllers/UserController_20260416185230.php deleted file mode 100644 index 86ba330..0000000 --- a/.history/app/Http/Controllers/UserController_20260416185230.php +++ /dev/null @@ -1,367 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 INI KUNCI UTAMA - $data['tanggal_masuk'] = now(); - - // 🔥 EMAIL DARI USER LOGIN - $data['email'] = auth>user()->email; - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416185231.php b/.history/app/Http/Controllers/UserController_20260416185231.php deleted file mode 100644 index 9c443b2..0000000 --- a/.history/app/Http/Controllers/UserController_20260416185231.php +++ /dev/null @@ -1,367 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 INI KUNCI UTAMA - $data['tanggal_masuk'] = now(); - - // 🔥 EMAIL DARI USER LOGIN - $data['email'] = auth::>user()->email; - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416185235.php b/.history/app/Http/Controllers/UserController_20260416185235.php deleted file mode 100644 index 308f8c9..0000000 --- a/.history/app/Http/Controllers/UserController_20260416185235.php +++ /dev/null @@ -1,367 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 INI KUNCI UTAMA - $data['tanggal_masuk'] = now(); - - // 🔥 EMAIL DARI USER LOGIN - $data['email'] = auth::user()->email; - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416185237.php b/.history/app/Http/Controllers/UserController_20260416185237.php deleted file mode 100644 index 1851195..0000000 --- a/.history/app/Http/Controllers/UserController_20260416185237.php +++ /dev/null @@ -1,367 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 INI KUNCI UTAMA - $data['tanggal_masuk'] = now(); - - // 🔥 EMAIL DARI USER LOGIN - $data['email'] = Auth::user()->email; - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190231.php b/.history/app/Http/Controllers/UserController_20260416190231.php deleted file mode 100644 index 07b3dbc..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190231.php +++ /dev/null @@ -1,363 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190303.php b/.history/app/Http/Controllers/UserController_20260416190303.php deleted file mode 100644 index a116af0..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190303.php +++ /dev/null @@ -1,368 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 FIX UTAMA DI SINI - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190314.php b/.history/app/Http/Controllers/UserController_20260416190314.php deleted file mode 100644 index 07b3dbc..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190314.php +++ /dev/null @@ -1,363 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190328.php b/.history/app/Http/Controllers/UserController_20260416190328.php deleted file mode 100644 index fd3060d..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190328.php +++ /dev/null @@ -1,363 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 'tanggal_masuk' => $request->tanggal_masuk, - // 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190344.php b/.history/app/Http/Controllers/UserController_20260416190344.php deleted file mode 100644 index 55eab49..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190344.php +++ /dev/null @@ -1,368 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 'tanggal_masuk' => $request->tanggal_masuk, - // 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 FIX UTAMA DI SINI - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190402.php b/.history/app/Http/Controllers/UserController_20260416190402.php deleted file mode 100644 index 1851195..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190402.php +++ /dev/null @@ -1,367 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 INI KUNCI UTAMA - $data['tanggal_masuk'] = now(); - - // 🔥 EMAIL DARI USER LOGIN - $data['email'] = Auth::user()->email; - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190405.php b/.history/app/Http/Controllers/UserController_20260416190405.php deleted file mode 100644 index 9bc2c01..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190405.php +++ /dev/null @@ -1,368 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - // 🔥 FIX UTAMA DI SINI - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190649.php b/.history/app/Http/Controllers/UserController_20260416190649.php deleted file mode 100644 index 07b3dbc..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190649.php +++ /dev/null @@ -1,363 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190652.php b/.history/app/Http/Controllers/UserController_20260416190652.php deleted file mode 100644 index 97805bd..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190652.php +++ /dev/null @@ -1,361 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - 'tanggal_masuk' => $request->tanggal_masuk, - 'tanggal_keluar' => $request->status_huni == 'Kontrak' ? $request->tanggal_keluar : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190656.php b/.history/app/Http/Controllers/UserController_20260416190656.php deleted file mode 100644 index 256f903..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190656.php +++ /dev/null @@ -1,365 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416190701.php b/.history/app/Http/Controllers/UserController_20260416190701.php deleted file mode 100644 index 24eb451..0000000 --- a/.history/app/Http/Controllers/UserController_20260416190701.php +++ /dev/null @@ -1,365 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416193006.php b/.history/app/Http/Controllers/UserController_20260416193006.php deleted file mode 100644 index f50a9ab..0000000 --- a/.history/app/Http/Controllers/UserController_20260416193006.php +++ /dev/null @@ -1,371 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - $isExpired = false; - -if ($penghuni && $penghuni->status == 'Tidak Aktif') { - $isExpired = true; -} - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416193010.php b/.history/app/Http/Controllers/UserController_20260416193010.php deleted file mode 100644 index a284d7e..0000000 --- a/.history/app/Http/Controllers/UserController_20260416193010.php +++ /dev/null @@ -1,371 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - $isExpired = false; - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - $isExpired = true; - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416193013.php b/.history/app/Http/Controllers/UserController_20260416193013.php deleted file mode 100644 index 33dce28..0000000 --- a/.history/app/Http/Controllers/UserController_20260416193013.php +++ /dev/null @@ -1,371 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - $isExpired = false; - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - $isExpired = true; - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserController_20260416193034.php b/.history/app/Http/Controllers/UserController_20260416193034.php deleted file mode 100644 index 3862663..0000000 --- a/.history/app/Http/Controllers/UserController_20260416193034.php +++ /dev/null @@ -1,371 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; - } - - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } - - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - $isExpired = false; - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - $isExpired = true; - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi', 'isExpired')); - } - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profile.edit', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $user = Auth::user(); - - if (!$user) { - return redirect('/login'); - } - - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); - - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // // ========================= - // // IURAN - // // ========================= - // public function iuran() - // { - // return view('user.iuran'); - // } - - // // ========================= - // // PENGADUAN - // // ========================= - // public function pengaduan() - // { - // return view('user.pengaduan'); - // } - - // public function storePengaduan(Request $request) - // { - // // sementara dummy dulu - // return back()->with('success', 'Pengaduan berhasil dikirim'); - // } - - // // ========================= - // // PENGUMUMAN - // // ========================= - // public function pengumuman() - // { - // return view('user.pengumuman'); - // } - - public function ambilRumah(Request $request) -{ - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); - - $rumah = Rumah::findOrFail($request->rumah_id); - - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); - } - - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } - - $rumah->status = 'Terisi'; -$rumah->save(); - -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); - - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); -} - - public function simpanPenghuni(Request $request) -{ - $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date' - ]); - - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} - - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), - - 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, - ]); - - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); -} - -// public function ambilRumah(Request $request) -// { -// $request->validate([ -// 'rumah_id' => 'required|exists:rumah,id' -// ]); - -// $rumah = Rumah::findOrFail($request->rumah_id); - -// if ($rumah->status == 'Terisi') { -// return back()->with('error', 'Rumah sudah diambil!'); -// } - -// $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -// if (!$penghuni) { -// return back()->with('error', 'Isi data penghuni dulu!'); -// } - -// if ($penghuni->rumah_id) { -// return back()->with('error', 'Anda sudah memiliki rumah!'); -// } - -// DB::transaction(function () use ($rumah, $penghuni) { -// $rumah->update(['status' => 'Terisi']); -// $penghuni->update(['rumah_id' => $rumah->id]); -// }); - -// return redirect()->route('user.rumah') -// ->with('success', 'Berhasil mengambil rumah!'); -// } - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile // 🔥 INI WAJIB ADA - ]); - - return back()->with('success', 'Rumah berhasil ditambahkan'); - } - - public function updateRumah(Request $request, $id) - { - $rumah = \App\Models\Rumah::findOrFail($id); - - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return back()->with('success', 'Berhasil update rumah'); - } - - public function detailInformasi($id) - { - $info = Informasi::findOrFail($id); - $info->increment('views'); - - return view('user.informasi.detail', compact('info')); - } - - // ========================= - // UPLOAD PEMBAYARAN - // ========================= - // public function uploadPembayaran() - // { - // return view('user.upload_pembayaran'); - // } - - // // ========================= - // // STATUS PEMBAYARAN - // // ========================= - // public function statusPembayaran() - // { - // return view('user.status_pembayaran'); - // } - - // // ========================= - // // STATUS PENGADUAN - // // ========================= - // public function statusPengaduan() - // { - // return view('user.status_pengaduan'); - // } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408161026.php b/.history/app/Http/Controllers/UserIuranController_20260408161026.php deleted file mode 100644 index 273998a..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408161026.php +++ /dev/null @@ -1,10 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_bayar')) { - $file = $request->file('bukti_bayar'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_bayar' => $namaFile, - 'status' => 'belum' // nanti admin approve - ]); - } - - return redirect()->route('user.iuran.status')->with('success', 'Bukti berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408161052.php b/.history/app/Http/Controllers/UserIuranController_20260408161052.php deleted file mode 100644 index fddee43..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408161052.php +++ /dev/null @@ -1,52 +0,0 @@ -namespace App\Http\Controllers; - -use Illuminate\Http\Request; -use App\Models\Iuran; -use Illuminate\Support\Facades\Auth; - -class UserIuranController extends Controller -{ - // 🔹 LIHAT DATA IURAN - public function index() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_bayar')) { - $file = $request->file('bukti_bayar'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_bayar' => $namaFile, - 'status' => 'belum' // nanti admin approve - ]); - } - - return redirect()->route('user.iuran.status')->with('success', 'Bukti berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408161054.php b/.history/app/Http/Controllers/UserIuranController_20260408161054.php deleted file mode 100644 index 72e6911..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408161054.php +++ /dev/null @@ -1,10 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_bayar')) { - $file = $request->file('bukti_bayar'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_bayar' => $namaFile, - 'status' => 'belum' // nanti admin approve - ]); - } - - return redirect()->route('user.iuran.status')->with('success', 'Bukti berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408162009.php b/.history/app/Http/Controllers/UserIuranController_20260408162009.php deleted file mode 100644 index 745fcdb..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408162009.php +++ /dev/null @@ -1,60 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - // 🔥 CEK FILE - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - // simpan ke folder public/bukti - $file->move(public_path('bukti'), $namaFile); - - // 🔥 SIMPAN KE DATABASE (INI YANG KAMU TANYA) - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408162015.php b/.history/app/Http/Controllers/UserIuranController_20260408162015.php deleted file mode 100644 index 9fb70fc..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408162015.php +++ /dev/null @@ -1,60 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - // 🔥 CEK FILE - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - // simpan ke folder public/bukti - $file->move(public_path('bukti'), $namaFile); - - // 🔥 SIMPAN KE DATABASE (INI YANG KAMU TANYA) - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408162608.php b/.history/app/Http/Controllers/UserIuranController_20260408162608.php deleted file mode 100644 index aa3b0db..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408162608.php +++ /dev/null @@ -1,72 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - // 🔥 CEK FILE - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - // simpan ke folder public/bukti - $file->move(public_path('bukti'), $namaFile); - - // 🔥 SIMPAN KE DATABASE (INI YANG KAMU TANYA) - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } - - public function approve($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back()->with('success', 'Pembayaran disetujui'); -} -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408162613.php b/.history/app/Http/Controllers/UserIuranController_20260408162613.php deleted file mode 100644 index f26ffc9..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408162613.php +++ /dev/null @@ -1,72 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - // 🔥 CEK FILE - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - // simpan ke folder public/bukti - $file->move(public_path('bukti'), $namaFile); - - // 🔥 SIMPAN KE DATABASE (INI YANG KAMU TANYA) - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } - - public function approve($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'tanggal_bayar' => now() - ]); - - return back()->with('success', 'Pembayaran disetujui'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408162638.php b/.history/app/Http/Controllers/UserIuranController_20260408162638.php deleted file mode 100644 index 2ac4ed5..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408162638.php +++ /dev/null @@ -1,62 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - // 🔥 CEK FILE - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - // simpan ke folder public/bukti - $file->move(public_path('bukti'), $namaFile); - - // 🔥 SIMPAN KE DATABASE (INI YANG KAMU TANYA) - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } - - -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408162640.php b/.history/app/Http/Controllers/UserIuranController_20260408162640.php deleted file mode 100644 index 9fb70fc..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408162640.php +++ /dev/null @@ -1,60 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_bayar' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - // 🔥 CEK FILE - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - // simpan ke folder public/bukti - $file->move(public_path('bukti'), $namaFile); - - // 🔥 SIMPAN KE DATABASE (INI YANG KAMU TANYA) - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408165949.php b/.history/app/Http/Controllers/UserIuranController_20260408165949.php deleted file mode 100644 index 0c90fb1..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408165949.php +++ /dev/null @@ -1,57 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) -{ - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); -} - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408165953.php b/.history/app/Http/Controllers/UserIuranController_20260408165953.php deleted file mode 100644 index 8abb296..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408165953.php +++ /dev/null @@ -1,57 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408171743.php b/.history/app/Http/Controllers/UserIuranController_20260408171743.php deleted file mode 100644 index 183eb7f..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408171743.php +++ /dev/null @@ -1,53 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408171745.php b/.history/app/Http/Controllers/UserIuranController_20260408171745.php deleted file mode 100644 index 8abb296..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408171745.php +++ /dev/null @@ -1,57 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - // 🔹 FORM UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔹 SIMPAN BUKTI BAYAR - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - // 🔹 STATUS PEMBAYARAN - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408171747.php b/.history/app/Http/Controllers/UserIuranController_20260408171747.php deleted file mode 100644 index 183eb7f..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408171747.php +++ /dev/null @@ -1,53 +0,0 @@ -id)->get(); - return view('user.iuran.index', compact('iuran')); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408172816.php b/.history/app/Http/Controllers/UserIuranController_20260408172816.php deleted file mode 100644 index 0913bbe..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408172816.php +++ /dev/null @@ -1,60 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); -} - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408172821.php b/.history/app/Http/Controllers/UserIuranController_20260408172821.php deleted file mode 100644 index 917b6e5..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408172821.php +++ /dev/null @@ -1,60 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $iuran = Iuran::where('penghuni_id', Auth::user()->id)->get(); - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408172836.php b/.history/app/Http/Controllers/UserIuranController_20260408172836.php deleted file mode 100644 index 46f6952..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408172836.php +++ /dev/null @@ -1,63 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() -{ - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); -} -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408172839.php b/.history/app/Http/Controllers/UserIuranController_20260408172839.php deleted file mode 100644 index 5e66d78..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408172839.php +++ /dev/null @@ -1,63 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408183019.php b/.history/app/Http/Controllers/UserIuranController_20260408183019.php deleted file mode 100644 index 8a9a0d7..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408183019.php +++ /dev/null @@ -1,73 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408183020.php b/.history/app/Http/Controllers/UserIuranController_20260408183020.php deleted file mode 100644 index 9618cc4..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408183020.php +++ /dev/null @@ -1,65 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408183023.php b/.history/app/Http/Controllers/UserIuranController_20260408183023.php deleted file mode 100644 index f43526d..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408183023.php +++ /dev/null @@ -1,78 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); -} - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408183029.php b/.history/app/Http/Controllers/UserIuranController_20260408183029.php deleted file mode 100644 index c10a8f4..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408183029.php +++ /dev/null @@ -1,78 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408190403.php b/.history/app/Http/Controllers/UserIuranController_20260408190403.php deleted file mode 100644 index d3e03a5..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408190403.php +++ /dev/null @@ -1,62 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD -public function upload($id) -{ - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); -} - -// 🔥 SIMPAN BUKTI -public function storeUpload(Request $request, $id) -{ - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408190404.php b/.history/app/Http/Controllers/UserIuranController_20260408190404.php deleted file mode 100644 index c10a8f4..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408190404.php +++ /dev/null @@ -1,78 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408190410.php b/.history/app/Http/Controllers/UserIuranController_20260408190410.php deleted file mode 100644 index ff9535a..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408190410.php +++ /dev/null @@ -1,63 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - -// 🔥 HALAMAN UPLOAD -public function upload($id) -{ - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); -} - -// 🔥 SIMPAN BUKTI -public function storeUpload(Request $request, $id) -{ - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408190413.php b/.history/app/Http/Controllers/UserIuranController_20260408190413.php deleted file mode 100644 index c10a8f4..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408190413.php +++ /dev/null @@ -1,78 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' - ]); - } - - return redirect()->route('user.iuran.status') - ->with('success', 'Bukti pembayaran berhasil diupload'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408190436.php b/.history/app/Http/Controllers/UserIuranController_20260408190436.php deleted file mode 100644 index a6d577d..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408190436.php +++ /dev/null @@ -1,80 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - -// 🔥 HALAMAN UPLOAD -public function upload($id) -{ - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); -} - -// 🔥 SIMPAN BUKTI -public function storeUpload(Request $request, $id) -{ - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); -} - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260408190446.php b/.history/app/Http/Controllers/UserIuranController_20260408190446.php deleted file mode 100644 index fb92b34..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260408190446.php +++ /dev/null @@ -1,80 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409083211.php b/.history/app/Http/Controllers/UserIuranController_20260409083211.php deleted file mode 100644 index caaef48..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409083211.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) -{ - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - if ($iuran->penghuni_id != auth()->user()->id) { - abort(403); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409083218.php b/.history/app/Http/Controllers/UserIuranController_20260409083218.php deleted file mode 100644 index 2aa5a81..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409083218.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - if ($iuran->penghuni_id != auth()->user()->id) { - abort(403); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409083521.php b/.history/app/Http/Controllers/UserIuranController_20260409083521.php deleted file mode 100644 index 7c431c9..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409083521.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - iif ($iuran->penghuni_id != Auth::user()->id) { - abort(403); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409083526.php b/.history/app/Http/Controllers/UserIuranController_20260409083526.php deleted file mode 100644 index e774270..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409083526.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - if ($iuran->penghuni_id != Auth::user()->id) { - abort(403); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409090337.php b/.history/app/Http/Controllers/UserIuranController_20260409090337.php deleted file mode 100644 index 4d306ca..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409090337.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - if ($iuran->penghuni_id != Auth::user()->id) { - abort(403, aks); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409090340.php b/.history/app/Http/Controllers/UserIuranController_20260409090340.php deleted file mode 100644 index b2cd119..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409090340.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - if ($iuran->penghuni_id != Auth::user()->id) { - abort(403, ''); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409090343.php b/.history/app/Http/Controllers/UserIuranController_20260409090343.php deleted file mode 100644 index da81630..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409090343.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - // opsional: hanya milik user - if ($iuran->penghuni_id != Auth::user()->id) { - abort(403, 'Akses ditolak'); - } - - $iuran->delete(); - - return back()->with('success', 'Data iuran berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409090513.php b/.history/app/Http/Controllers/UserIuranController_20260409090513.php deleted file mode 100644 index b1f3a6a..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409090513.php +++ /dev/null @@ -1,89 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) -{ - $iuran = \App\Models\Iuran::findOrFail($id); - - $iuran->delete(); - - return back()->with('success', 'Data berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409090516.php b/.history/app/Http/Controllers/UserIuranController_20260409090516.php deleted file mode 100644 index a41fbbe..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409090516.php +++ /dev/null @@ -1,89 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - $iuran = \App\Models\Iuran::findOrFail($id); - - $iuran->delete(); - - return back()->with('success', 'Data berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409091203.php b/.history/app/Http/Controllers/UserIuranController_20260409091203.php deleted file mode 100644 index 65d91ea..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409091203.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) -{ - // ambil data dari session - $hidden = session()->get('hidden_iuran', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_iuran', $hidden); - - return back()->with('success', 'Data disembunyikan dari halaman ini'); -} -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260409091210.php b/.history/app/Http/Controllers/UserIuranController_20260409091210.php deleted file mode 100644 index 87a0958..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260409091210.php +++ /dev/null @@ -1,94 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - // ambil data dari session - $hidden = session()->get('hidden_iuran', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_iuran', $hidden); - - return back()->with('success', 'Data disembunyikan dari halaman ini'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260416200440.php b/.history/app/Http/Controllers/UserIuranController_20260416200440.php deleted file mode 100644 index 4a82b3f..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260416200440.php +++ /dev/null @@ -1,103 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - $penghuni = \App\Models\Penghuni::where('email', auth()->user()->email)->first(); - -if ($penghuni && $penghuni->status_huni == 'Kontrak' && $penghuni->tanggal_keluar) { - if (now()->gt($penghuni->tanggal_keluar)) { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir!'); - } -} - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - // ambil data dari session - $hidden = session()->get('hidden_iuran', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_iuran', $hidden); - - return back()->with('success', 'Data disembunyikan dari halaman ini'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260416200445.php b/.history/app/Http/Controllers/UserIuranController_20260416200445.php deleted file mode 100644 index 38190df..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260416200445.php +++ /dev/null @@ -1,103 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - $penghuni = \App\Models\Penghuni::where('email', auth()->user()->email)->first(); - - if ($penghuni && $penghuni->status_huni == 'Kontrak' && $penghuni->tanggal_keluar) { - if (now()->gt($penghuni->tanggal_keluar)) { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir!'); - } - } - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - // ambil data dari session - $hidden = session()->get('hidden_iuran', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_iuran', $hidden); - - return back()->with('success', 'Data disembunyikan dari halaman ini'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260416200450.php b/.history/app/Http/Controllers/UserIuranController_20260416200450.php deleted file mode 100644 index 3d0e39c..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260416200450.php +++ /dev/null @@ -1,103 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - $penghuni = \App\Models\Penghuni::where('email', user()->email)->first(); - - if ($penghuni && $penghuni->status_huni == 'Kontrak' && $penghuni->tanggal_keluar) { - if (now()->gt($penghuni->tanggal_keluar)) { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir!'); - } - } - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - // ambil data dari session - $hidden = session()->get('hidden_iuran', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_iuran', $hidden); - - return back()->with('success', 'Data disembunyikan dari halaman ini'); - } -} diff --git a/.history/app/Http/Controllers/UserIuranController_20260416200453.php b/.history/app/Http/Controllers/UserIuranController_20260416200453.php deleted file mode 100644 index 46ea17d..0000000 --- a/.history/app/Http/Controllers/UserIuranController_20260416200453.php +++ /dev/null @@ -1,103 +0,0 @@ -email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan'); - } - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - if ($penghuni && $penghuni->status_huni == 'Kontrak' && $penghuni->tanggal_keluar) { - if (now()->gt($penghuni->tanggal_keluar)) { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir!'); - } - } - - return view('user.iuran.index', compact('iuran')); - } - - public function bayarQris($id) - { - $iuran = Iuran::findOrFail($id); - - $iuran->update([ - 'status' => 'lunas', - 'metode' => 'qris', - 'tanggal_bayar' => now() - ]); - - return response()->json([ - 'success' => true - ]); - } - - // 🔥 HALAMAN UPLOAD - public function upload($id) - { - $iuran = Iuran::findOrFail($id); - return view('user.iuran.upload', compact('iuran')); - } - - // 🔥 SIMPAN BUKTI - public function storeUpload(Request $request, $id) - { - $request->validate([ - 'bukti_pembayaran' => 'required|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $iuran = Iuran::findOrFail($id); - - if ($request->hasFile('bukti_pembayaran')) { - - $file = $request->file('bukti_pembayaran'); - $namaFile = time().'.'.$file->getClientOriginalExtension(); - - $file->move(public_path('bukti'), $namaFile); - - $iuran->update([ - 'bukti_pembayaran' => $namaFile, - 'status' => 'belum' // menunggu approve admin - ]); - } - - return redirect()->route('user.iuran.index') - ->with('success', 'Bukti berhasil diupload, menunggu konfirmasi admin'); - } - - public function status() - { - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - $iuran = Iuran::where('penghuni_id', $penghuni->id)->get(); - - return view('user.iuran.status', compact('iuran')); - } - - public function delete($id) - { - // ambil data dari session - $hidden = session()->get('hidden_iuran', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_iuran', $hidden); - - return back()->with('success', 'Data disembunyikan dari halaman ini'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260410133357.php b/.history/app/Http/Controllers/UserLayananController_20260410133357.php deleted file mode 100644 index b14348c..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260410133357.php +++ /dev/null @@ -1,10 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $foto = null; - - if ($request->hasFile('foto')) { - $foto = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => Auth::user()->penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $foto, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); - } - - // STATUS USER - public function status() - { - $layanan = Layanan::where('penghuni_id', Auth::user()->penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260410135210.php b/.history/app/Http/Controllers/UserLayananController_20260410135210.php deleted file mode 100644 index 51b8f88..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260410135210.php +++ /dev/null @@ -1,57 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10' - ]); - - // 🔥 AMBIL BERDASARKAN EMAIL (SESUAI DB KAMU) - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni belum ada!'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); - } - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260410140954.php b/.history/app/Http/Controllers/UserLayananController_20260410140954.php deleted file mode 100644 index 75eb032..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260410140954.php +++ /dev/null @@ -1,64 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = \App\Models\Penghuni::where('email', auth()->user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - \App\Models\Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260410141044.php b/.history/app/Http/Controllers/UserLayananController_20260410141044.php deleted file mode 100644 index 7675cfa..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260410141044.php +++ /dev/null @@ -1,64 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - \App\Models\Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260410141046.php b/.history/app/Http/Controllers/UserLayananController_20260410141046.php deleted file mode 100644 index d2388da..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260410141046.php +++ /dev/null @@ -1,64 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - \App\Models\Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414004528.php b/.history/app/Http/Controllers/UserLayananController_20260414004528.php deleted file mode 100644 index 780a145..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414004528.php +++ /dev/null @@ -1,64 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - \App\Models\Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414004549.php b/.history/app/Http/Controllers/UserLayananController_20260414004549.php deleted file mode 100644 index 6b3c99b..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414004549.php +++ /dev/null @@ -1,60 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414004552.php b/.history/app/Http/Controllers/UserLayananController_20260414004552.php deleted file mode 100644 index 6b3c99b..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414004552.php +++ /dev/null @@ -1,60 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143748.php b/.history/app/Http/Controllers/UserLayananController_20260414143748.php deleted file mode 100644 index edf94a1..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143748.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != auth()->user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143756.php b/.history/app/Http/Controllers/UserLayananController_20260414143756.php deleted file mode 100644 index 05a508f..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143756.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != a()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143800.php b/.history/app/Http/Controllers/UserLayananController_20260414143800.php deleted file mode 100644 index 595a11b..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143800.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143801.php b/.history/app/Http/Controllers/UserLayananController_20260414143801.php deleted file mode 100644 index 3a9c232..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143801.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Authid) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143806.php b/.history/app/Http/Controllers/UserLayananController_20260414143806.php deleted file mode 100644 index c01e014..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143806.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Auth::userid) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143808.php b/.history/app/Http/Controllers/UserLayananController_20260414143808.php deleted file mode 100644 index c01e014..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143808.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Auth::userid) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143811.php b/.history/app/Http/Controllers/UserLayananController_20260414143811.php deleted file mode 100644 index 3b9b5a7..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143811.php +++ /dev/null @@ -1,62 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143812.php b/.history/app/Http/Controllers/UserLayananController_20260414143812.php deleted file mode 100644 index edf94a1..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143812.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != auth()->user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143819.php b/.history/app/Http/Controllers/UserLayananController_20260414143819.php deleted file mode 100644 index 95e11b3..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143819.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Auth:user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143822.php b/.history/app/Http/Controllers/UserLayananController_20260414143822.php deleted file mode 100644 index edf94a1..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143822.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != auth()->user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143917.php b/.history/app/Http/Controllers/UserLayananController_20260414143917.php deleted file mode 100644 index a2a96a9..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143917.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) -{ - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Auth::user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143924.php b/.history/app/Http/Controllers/UserLayananController_20260414143924.php deleted file mode 100644 index 27e47c5..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143924.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) - { - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Auth::user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143940.php b/.history/app/Http/Controllers/UserLayananController_20260414143940.php deleted file mode 100644 index 7be9d82..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143940.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) - { - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != auth()->id()) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414143943.php b/.history/app/Http/Controllers/UserLayananController_20260414143943.php deleted file mode 100644 index 27e47c5..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414143943.php +++ /dev/null @@ -1,73 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function destroy($id) - { - $data = \App\Models\Layanan::findOrFail($id); - - if ($data->penghuni_id != Auth::user()->id) { - abort(403); - } - - $data->delete(); - - return back()->with('success', 'Pengaduan berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414144343.php b/.history/app/Http/Controllers/UserLayananController_20260414144343.php deleted file mode 100644 index 572f3dd..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414144343.php +++ /dev/null @@ -1,74 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) -{ - // ambil data dari session - $hidden = session()->get('hidden_pengaduan', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_pengaduan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan dari halaman ini'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414144349.php b/.history/app/Http/Controllers/UserLayananController_20260414144349.php deleted file mode 100644 index 1627e68..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414144349.php +++ /dev/null @@ -1,74 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) - { - // ambil data dari session - $hidden = session()->get('hidden_pengaduan', []); - - // tambahkan id ke list hidden - $hidden[] = $id; - - // simpan kembali ke session - session()->put('hidden_pengaduan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan dari halaman ini'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414144712.php b/.history/app/Http/Controllers/UserLayananController_20260414144712.php deleted file mode 100644 index 7076d9d..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414144712.php +++ /dev/null @@ -1,71 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) -{ - $hidden = session()->get('hidden_layanan', []); - - $hidden[] = $id; - - session()->put('hidden_layanan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414144716.php b/.history/app/Http/Controllers/UserLayananController_20260414144716.php deleted file mode 100644 index 180b685..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414144716.php +++ /dev/null @@ -1,71 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) - { - $hidden = session()->get('hidden_layanan', []); - - $hidden[] = $id; - - session()->put('hidden_layanan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414145445.php b/.history/app/Http/Controllers/UserLayananController_20260414145445.php deleted file mode 100644 index 076dfc7..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414145445.php +++ /dev/null @@ -1,74 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) -{ - $hidden = session()->get('hidden_layanan', []); - - // 🔥 biar ga double - if (!in_array($id, $hidden)) { - $hidden[] = $id; - } - - session()->put('hidden_layanan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan'); -} -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260414145448.php b/.history/app/Http/Controllers/UserLayananController_20260414145448.php deleted file mode 100644 index 755a327..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260414145448.php +++ /dev/null @@ -1,74 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) - { - $hidden = session()->get('hidden_layanan', []); - - // 🔥 biar ga double - if (!in_array($id, $hidden)) { - $hidden[] = $id; - } - - session()->put('hidden_layanan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan'); - } -} diff --git a/.history/app/Http/Controllers/UserLayananController_20260416194233.php b/.history/app/Http/Controllers/UserLayananController_20260416194233.php deleted file mode 100644 index 6255802..0000000 --- a/.history/app/Http/Controllers/UserLayananController_20260416194233.php +++ /dev/null @@ -1,80 +0,0 @@ -validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - // 🔥 BLOCK DI SINI - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } - - public function delete($id) - { - $hidden = session()->get('hidden_layanan', []); - - // 🔥 biar ga double - if (!in_array($id, $hidden)) { - $hidden[] = $id; - } - - session()->put('hidden_layanan', $hidden); - - return back()->with('success', 'Pengaduan disembunyikan'); - } -} diff --git a/.history/app/Http/Controllers/dashboardController_20250815103235.php b/.history/app/Http/Controllers/dashboardController_20250815103235.php deleted file mode 100644 index e8ce24c..0000000 --- a/.history/app/Http/Controllers/dashboardController_20250815103235.php +++ /dev/null @@ -1,13 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // relasi rumah - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - - 'no_ktp' => [ - 'required', - 'string', - 'max:20', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - - 'email' => [ - 'required', - 'email', - 'max:100', - Rule::unique('penghuni', 'email')->ignore($id), - ], - - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - // ✅ FIX: pakai validated, bukan request->all() - $penghuni->update($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diupdate.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330202745.php b/.history/app/Http/Controllers/penghuniController_20260330202745.php deleted file mode 100644 index 5bd996a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330202745.php +++ /dev/null @@ -1,130 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // relasi rumah - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - - 'no_ktp' => [ - 'required', - 'string', - 'max:20', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - - 'email' => [ - 'required', - 'email', - 'max:100', - Rule::unique('penghuni', 'email')->ignore($id), - ], - - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - // ✅ FIX: pakai validated, bukan request->all() - $penghuni->update($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diupdate.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330202750.php b/.history/app/Http/Controllers/penghuniController_20260330202750.php deleted file mode 100644 index 5bd996a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330202750.php +++ /dev/null @@ -1,130 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // relasi rumah - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - - 'no_ktp' => [ - 'required', - 'string', - 'max:20', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - - 'email' => [ - 'required', - 'email', - 'max:100', - Rule::unique('penghuni', 'email')->ignore($id), - ], - - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - // ✅ FIX: pakai validated, bukan request->all() - $penghuni->update($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diupdate.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330202754.php b/.history/app/Http/Controllers/penghuniController_20260330202754.php deleted file mode 100644 index bf1a72a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330202754.php +++ /dev/null @@ -1,99 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // Form edit - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // Update data - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::findOrFail($id); - $penghuni->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // Hapus data - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index')->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330202800.php b/.history/app/Http/Controllers/penghuniController_20260330202800.php deleted file mode 100644 index 5bd996a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330202800.php +++ /dev/null @@ -1,130 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // relasi rumah - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - - 'no_ktp' => [ - 'required', - 'string', - 'max:20', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - - 'email' => [ - 'required', - 'email', - 'max:100', - Rule::unique('penghuni', 'email')->ignore($id), - ], - - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - // ✅ FIX: pakai validated, bukan request->all() - $penghuni->update($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diupdate.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330203840.php b/.history/app/Http/Controllers/penghuniController_20260330203840.php deleted file mode 100644 index 5bd996a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330203840.php +++ /dev/null @@ -1,130 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // relasi rumah - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - - 'no_ktp' => [ - 'required', - 'string', - 'max:20', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - - 'email' => [ - 'required', - 'email', - 'max:100', - Rule::unique('penghuni', 'email')->ignore($id), - ], - - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - 'blok_rumah' => 'required|string|max:10', - 'no_rumah' => 'required|string|max:10', - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - // ✅ FIX: pakai validated, bukan request->all() - $penghuni->update($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diupdate.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330203842.php b/.history/app/Http/Controllers/penghuniController_20260330203842.php deleted file mode 100644 index bf1a72a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330203842.php +++ /dev/null @@ -1,99 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // Form edit - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // Update data - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::findOrFail($id); - $penghuni->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // Hapus data - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index')->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330205309.php b/.history/app/Http/Controllers/penghuniController_20260330205309.php deleted file mode 100644 index 5b887af..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330205309.php +++ /dev/null @@ -1,114 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni->update($validated); // ✅ pakai validated - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330210826.php b/.history/app/Http/Controllers/penghuniController_20260330210826.php deleted file mode 100644 index 8c4e25a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330210826.php +++ /dev/null @@ -1,118 +0,0 @@ -get(); // opsional filter - return view('admin.penghuni.create', compact('rumah')); -} - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni->update($validated); // ✅ pakai validated - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330210828.php b/.history/app/Http/Controllers/penghuniController_20260330210828.php deleted file mode 100644 index 5b887af..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330210828.php +++ /dev/null @@ -1,114 +0,0 @@ -validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni->update($validated); // ✅ pakai validated - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330210834.php b/.history/app/Http/Controllers/penghuniController_20260330210834.php deleted file mode 100644 index 9b4e24d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330210834.php +++ /dev/null @@ -1,115 +0,0 @@ -get(); // opsional filter - return view('admin.penghuni.create', compact('rumah')); -} - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni->update($validated); // ✅ pakai validated - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211101.php b/.history/app/Http/Controllers/penghuniController_20260330211101.php deleted file mode 100644 index 63ddf8e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211101.php +++ /dev/null @@ -1,162 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211102.php b/.history/app/Http/Controllers/penghuniController_20260330211102.php deleted file mode 100644 index 9b4e24d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211102.php +++ /dev/null @@ -1,115 +0,0 @@ -get(); // opsional filter - return view('admin.penghuni.create', compact('rumah')); -} - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - Penghuni::create($validated); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - return view('admin.penghuni.edit', compact('penghuni')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'blok_rumah' => 'nullable|string|max:10', - 'no_rumah' => 'nullable|string|max:10', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni->update($validated); // ✅ pakai validated - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211104.php b/.history/app/Http/Controllers/penghuniController_20260330211104.php deleted file mode 100644 index 63ddf8e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211104.php +++ /dev/null @@ -1,162 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211804.php b/.history/app/Http/Controllers/penghuniController_20260330211804.php deleted file mode 100644 index 3636c9a..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211804.php +++ /dev/null @@ -1,162 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); -} - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211807.php b/.history/app/Http/Controllers/penghuniController_20260330211807.php deleted file mode 100644 index 63ddf8e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211807.php +++ /dev/null @@ -1,162 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211838.php b/.history/app/Http/Controllers/penghuniController_20260330211838.php deleted file mode 100644 index 6e84625..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211838.php +++ /dev/null @@ -1,163 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); -} ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211840.php b/.history/app/Http/Controllers/penghuniController_20260330211840.php deleted file mode 100644 index 63ddf8e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211840.php +++ /dev/null @@ -1,162 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211846.php b/.history/app/Http/Controllers/penghuniController_20260330211846.php deleted file mode 100644 index 1c1c3d1..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211846.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); -} - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330211850.php b/.history/app/Http/Controllers/penghuniController_20260330211850.php deleted file mode 100644 index a32c0a3..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330211850.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') // ❗ biar tidak double - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330212128.php b/.history/app/Http/Controllers/penghuniController_20260330212128.php deleted file mode 100644 index 97294e8..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330212128.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') -], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330212132.php b/.history/app/Http/Controllers/penghuniController_20260330212132.php deleted file mode 100644 index 284cb96..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330212132.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330212203.php b/.history/app/Http/Controllers/penghuniController_20260330212203.php deleted file mode 100644 index 86cc310..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330212203.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), -], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330212208.php b/.history/app/Http/Controllers/penghuniController_20260330212208.php deleted file mode 100644 index 284cb96..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330212208.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id') - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330212459.php b/.history/app/Http/Controllers/penghuniController_20260330212459.php deleted file mode 100644 index b62ced9..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330212459.php +++ /dev/null @@ -1,160 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330212501.php b/.history/app/Http/Controllers/penghuniController_20260330212501.php deleted file mode 100644 index 6aed39f..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330212501.php +++ /dev/null @@ -1,159 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330221935.php b/.history/app/Http/Controllers/penghuniController_20260330221935.php deleted file mode 100644 index 0aebfec..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330221935.php +++ /dev/null @@ -1,161 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330221937.php b/.history/app/Http/Controllers/penghuniController_20260330221937.php deleted file mode 100644 index 7506b45..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330221937.php +++ /dev/null @@ -1,162 +0,0 @@ -get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330221939.php b/.history/app/Http/Controllers/penghuniController_20260330221939.php deleted file mode 100644 index 87b8f72..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330221939.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330221954.php b/.history/app/Http/Controllers/penghuniController_20260330221954.php deleted file mode 100644 index a9d358e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330221954.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330221957.php b/.history/app/Http/Controllers/penghuniController_20260330221957.php deleted file mode 100644 index 978f51d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330221957.php +++ /dev/null @@ -1,174 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330221959.php b/.history/app/Http/Controllers/penghuniController_20260330221959.php deleted file mode 100644 index fc627af..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330221959.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330222002.php b/.history/app/Http/Controllers/penghuniController_20260330222002.php deleted file mode 100644 index a9d358e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330222002.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330222004.php b/.history/app/Http/Controllers/penghuniController_20260330222004.php deleted file mode 100644 index 0221b54..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330222004.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330235300.php b/.history/app/Http/Controllers/penghuniController_20260330235300.php deleted file mode 100644 index a622301..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330235300.php +++ /dev/null @@ -1,119 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => ['nullable','exists:rumah,id'], - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumah = $penghuni->rumah_id; - - $penghuni->update($validated); - - if ($oldRumah && $oldRumah != $request->rumah_id) { - Rumah::where('id', $oldRumah)->update(['status' => 'Kosong']); - } - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil update'); - } - - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id)->update(['status' => 'Kosong']); - } - - $penghuni->delete(); // 🔥 FIX PENTING - - return redirect()->route('penghuni.index')->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330235315.php b/.history/app/Http/Controllers/penghuniController_20260330235315.php deleted file mode 100644 index a622301..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330235315.php +++ /dev/null @@ -1,119 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => ['nullable','exists:rumah,id'], - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumah = $penghuni->rumah_id; - - $penghuni->update($validated); - - if ($oldRumah && $oldRumah != $request->rumah_id) { - Rumah::where('id', $oldRumah)->update(['status' => 'Kosong']); - } - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil update'); - } - - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id)->update(['status' => 'Kosong']); - } - - $penghuni->delete(); // 🔥 FIX PENTING - - return redirect()->route('penghuni.index')->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330235318.php b/.history/app/Http/Controllers/penghuniController_20260330235318.php deleted file mode 100644 index 0221b54..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330235318.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330235328.php b/.history/app/Http/Controllers/penghuniController_20260330235328.php deleted file mode 100644 index a622301..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330235328.php +++ /dev/null @@ -1,119 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil ditambahkan'); - } - - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => ['nullable','exists:rumah,id'], - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumah = $penghuni->rumah_id; - - $penghuni->update($validated); - - if ($oldRumah && $oldRumah != $request->rumah_id) { - Rumah::where('id', $oldRumah)->update(['status' => 'Kosong']); - } - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil update'); - } - - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id)->update(['status' => 'Kosong']); - } - - $penghuni->delete(); // 🔥 FIX PENTING - - return redirect()->route('penghuni.index')->with('success', 'Berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260330235448.php b/.history/app/Http/Controllers/penghuniController_20260330235448.php deleted file mode 100644 index 0221b54..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260330235448.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331001053.php b/.history/app/Http/Controllers/penghuniController_20260331001053.php deleted file mode 100644 index 10c7daa..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331001053.php +++ /dev/null @@ -1,149 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331001056.php b/.history/app/Http/Controllers/penghuniController_20260331001056.php deleted file mode 100644 index 0221b54..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331001056.php +++ /dev/null @@ -1,173 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); // 🔥 relasi eager load - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - // hanya tampilkan rumah yang belum dipakai - $rumah = Rumah::where('status', 'Kosong')->get(); - - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|string|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI BARU - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $penghuni = Penghuni::create($validated); - - // 🔥 UPDATE STATUS RUMAH JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - // tampilkan rumah kosong + rumah yang sedang dipakai penghuni ini - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => [ - 'required', - Rule::unique('penghuni', 'no_ktp')->ignore($id), - ], - 'email' => [ - 'required', - 'email', - Rule::unique('penghuni', 'email')->ignore($id), - ], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - - // 🔥 RELASI - 'rumah_id' => [ - 'nullable', - 'exists:rumah,id', - Rule::unique('penghuni', 'rumah_id')->ignore($id), - ], - - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => $request->status_huni === 'Kontrak' - ? 'required|date|after_or_equal:tanggal_masuk' - : 'nullable', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // 🔥 KOSONGKAN RUMAH LAMA - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // 🔥 SET RUMAH BARU JADI TERISI - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // 🔥 KOSONGKAN RUMAH - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331001059.php b/.history/app/Http/Controllers/penghuniController_20260331001059.php deleted file mode 100644 index 10c7daa..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331001059.php +++ /dev/null @@ -1,149 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331001319.php b/.history/app/Http/Controllers/penghuniController_20260331001319.php deleted file mode 100644 index 570a0f5..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331001319.php +++ /dev/null @@ -1,169 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) -{ - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); -} -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331002728.php b/.history/app/Http/Controllers/penghuniController_20260331002728.php deleted file mode 100644 index 98ea783..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331002728.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) -{ - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); -} - - // ========================= -// EDIT RUMAH -// ========================= -public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); - return view('admin.rumah.edit', compact('rumah')); -} - -// ========================= -// UPDATE RUMAH -// ========================= -public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - -// ========================= -// HAPUS RUMAH -// ========================= -public function destroyRumah($id) -{ - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); -} -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331002740.php b/.history/app/Http/Controllers/penghuniController_20260331002740.php deleted file mode 100644 index c6b3a55..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331002740.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - return view('admin.rumah.edit', compact('rumah')); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331003451.php b/.history/app/Http/Controllers/penghuniController_20260331003451.php deleted file mode 100644 index 70d4b09..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331003451.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - return view('admin.edit', compact('rumah')); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331003502.php b/.history/app/Http/Controllers/penghuniController_20260331003502.php deleted file mode 100644 index 1de4487..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331003502.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - return view('adminpenghuni.edit', compact('rumah')); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331003508.php b/.history/app/Http/Controllers/penghuniController_20260331003508.php deleted file mode 100644 index 8c7127c..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331003508.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - return view('admin.penghuni.edit', compact('rumah')); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331003519.php b/.history/app/Http/Controllers/penghuniController_20260331003519.php deleted file mode 100644 index c6b3a55..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331003519.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - return view('admin.rumah.edit', compact('rumah')); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331003721.php b/.history/app/Http/Controllers/penghuniController_20260331003721.php deleted file mode 100644 index 8c7127c..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331003721.php +++ /dev/null @@ -1,209 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - return view('admin.penghuni.edit', compact('rumah')); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331003809.php b/.history/app/Http/Controllers/penghuniController_20260331003809.php deleted file mode 100644 index 4bbee44..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331003809.php +++ /dev/null @@ -1,219 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005148.php b/.history/app/Http/Controllers/penghuniController_20260331005148.php deleted file mode 100644 index d46b327..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005148.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005151.php b/.history/app/Http/Controllers/penghuniController_20260331005151.php deleted file mode 100644 index c9d7615..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005151.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005540.php b/.history/app/Http/Controllers/penghuniController_20260331005540.php deleted file mode 100644 index 2218cca..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005540.php +++ /dev/null @@ -1,223 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::findOrFail($id); // 1 data -$rumahList = Rumah::all(); // untuk dropdown - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005552.php b/.history/app/Http/Controllers/penghuniController_20260331005552.php deleted file mode 100644 index c9d7615..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005552.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005605.php b/.history/app/Http/Controllers/penghuniController_20260331005605.php deleted file mode 100644 index 2218cca..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005605.php +++ /dev/null @@ -1,223 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::findOrFail($id); // 1 data -$rumahList = Rumah::all(); // untuk dropdown - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005611.php b/.history/app/Http/Controllers/penghuniController_20260331005611.php deleted file mode 100644 index f076235..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005611.php +++ /dev/null @@ -1,223 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::findOrFail($id); // 1 data - $rumahList = Rumah::all(); // untuk dropdown - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005732.php b/.history/app/Http/Controllers/penghuniController_20260331005732.php deleted file mode 100644 index c9d7615..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005732.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005839.php b/.history/app/Http/Controllers/penghuniController_20260331005839.php deleted file mode 100644 index 1c57b6e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005839.php +++ /dev/null @@ -1,231 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005841.php b/.history/app/Http/Controllers/penghuniController_20260331005841.php deleted file mode 100644 index c9d7615..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005841.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005850.php b/.history/app/Http/Controllers/penghuniController_20260331005850.php deleted file mode 100644 index 260af6b..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005850.php +++ /dev/null @@ -1,218 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005857.php b/.history/app/Http/Controllers/penghuniController_20260331005857.php deleted file mode 100644 index a8e0f88..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005857.php +++ /dev/null @@ -1,217 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331005900.php b/.history/app/Http/Controllers/penghuniController_20260331005900.php deleted file mode 100644 index 081cf2d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331005900.php +++ /dev/null @@ -1,217 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331010337.php b/.history/app/Http/Controllers/penghuniController_20260331010337.php deleted file mode 100644 index e0a4435..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331010337.php +++ /dev/null @@ -1,129 +0,0 @@ -get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - public function create() - { - $rumahList = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumahList')); - } - - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - ]); - - $penghuni = Penghuni::create($validated); - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Berhasil tambah'); - } - - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'alamat' => 'required', - 'rumah_id' => 'nullable|exists:rumah,id', - ]); - - $oldRumah = $penghuni->rumah_id; - - $penghuni->update($validated); - - if ($oldRumah && $oldRumah != $request->rumah_id) { - Rumah::where('id', $oldRumah)->update(['status' => 'Kosong']); - } - - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id)->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index')->with('success', 'Update berhasil'); - } - - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id)->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return back()->with('success', 'Hapus berhasil'); - } - - // ========================= - // RUMAH - // ========================= - - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index')->with('success', 'Rumah diupdate'); - } - - public function destroyRumah($id) - { - Rumah::findOrFail($id)->delete(); - return back()->with('success', 'Rumah dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331010355.php b/.history/app/Http/Controllers/penghuniController_20260331010355.php deleted file mode 100644 index 081cf2d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331010355.php +++ /dev/null @@ -1,217 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012509.php b/.history/app/Http/Controllers/penghuniController_20260331012509.php deleted file mode 100644 index a8e0f88..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012509.php +++ /dev/null @@ -1,217 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012512.php b/.history/app/Http/Controllers/penghuniController_20260331012512.php deleted file mode 100644 index 94f2447..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012512.php +++ /dev/null @@ -1,218 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - public function editRumah($id)============== -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012514.php b/.history/app/Http/Controllers/penghuniController_20260331012514.php deleted file mode 100644 index a8e0f88..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012514.php +++ /dev/null @@ -1,217 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012516.php b/.history/app/Http/Controllers/penghuniController_20260331012516.php deleted file mode 100644 index 081cf2d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012516.php +++ /dev/null @@ -1,217 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012531.php b/.history/app/Http/Controllers/penghuniController_20260331012531.php deleted file mode 100644 index c9d7615..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012531.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012533.php b/.history/app/Http/Controllers/penghuniController_20260331012533.php deleted file mode 100644 index d46b327..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012533.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012536.php b/.history/app/Http/Controllers/penghuniController_20260331012536.php deleted file mode 100644 index 4bbee44..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012536.php +++ /dev/null @@ -1,219 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012552.php b/.history/app/Http/Controllers/penghuniController_20260331012552.php deleted file mode 100644 index 260af6b..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012552.php +++ /dev/null @@ -1,218 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012554.php b/.history/app/Http/Controllers/penghuniController_20260331012554.php deleted file mode 100644 index 94f2447..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012554.php +++ /dev/null @@ -1,218 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - public function editRumah($id)============== -{ - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012556.php b/.history/app/Http/Controllers/penghuniController_20260331012556.php deleted file mode 100644 index c9d7615..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012556.php +++ /dev/null @@ -1,222 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => new Penghuni(), - 'rumah' => $rumah -]); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012613.php b/.history/app/Http/Controllers/penghuniController_20260331012613.php deleted file mode 100644 index 4bbee44..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012613.php +++ /dev/null @@ -1,219 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // bikin dummy penghuni biar view tidak error - $penghuni = new \App\Models\Penghuni(); - - // ambil semua rumah untuk dropdown - $rumahList = Rumah::all(); - - return view('admin.penghuni.edit', [ - 'penghuni' => $penghuni, - 'rumah' => $rumahList - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012648.php b/.history/app/Http/Controllers/penghuniController_20260331012648.php deleted file mode 100644 index 790e2c6..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012648.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumah = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumah')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012724.php b/.history/app/Http/Controllers/penghuniController_20260331012724.php deleted file mode 100644 index c3aee30..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012724.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012727.php b/.history/app/Http/Controllers/penghuniController_20260331012727.php deleted file mode 100644 index 67f4b43..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012727.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012829.php b/.history/app/Http/Controllers/penghuniController_20260331012829.php deleted file mode 100644 index 6b768d2..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012829.php +++ /dev/null @@ -1,211 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012830.php b/.history/app/Http/Controllers/penghuniController_20260331012830.php deleted file mode 100644 index 67f4b43..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012830.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumah = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumah')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012834.php b/.history/app/Http/Controllers/penghuniController_20260331012834.php deleted file mode 100644 index e85c7e8..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012834.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012839.php b/.history/app/Http/Controllers/penghuniController_20260331012839.php deleted file mode 100644 index 8ade2c7..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012839.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); // 1 data - - return view('admin.penghuni.edit', [ - 'penghuni' => new \App\Models\Penghuni(), - 'rumah' => $rumah, // 🔥 ini 1 data - 'rumahList' => Rumah::all() // 🔥 ini untuk select - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012857.php b/.history/app/Http/Controllers/penghuniController_20260331012857.php deleted file mode 100644 index 0a30aa2..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012857.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012903.php b/.history/app/Http/Controllers/penghuniController_20260331012903.php deleted file mode 100644 index 787c8c9..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012903.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331012910.php b/.history/app/Http/Controllers/penghuniController_20260331012910.php deleted file mode 100644 index c2b57f6..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331012910.php +++ /dev/null @@ -1,214 +0,0 @@ -has('blok')) { - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - // 🔥 WAJIB (fix bug) - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331144622.php b/.history/app/Http/Controllers/penghuniController_20260331144622.php deleted file mode 100644 index 1b43aa1..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331144622.php +++ /dev/null @@ -1,244 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO UPDATE - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - - $request->merge(['foto' => $namaFile]); - } - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331173833.php b/.history/app/Http/Controllers/penghuniController_20260331173833.php deleted file mode 100644 index 06a0035..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331173833.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO BARU - if ($request->hasFile('foto')) { - - // hapus foto lama (optional tapi bagus) - if ($rumah->foto && file_exists(public_path('foto_rumah/' . $rumah->foto))) { - unlink(public_path('foto_rumah/' . $rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 UPDATE FOTO - } - - // update data lainnya - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331174019.php b/.history/app/Http/Controllers/penghuniController_20260331174019.php deleted file mode 100644 index 1b43aa1..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331174019.php +++ /dev/null @@ -1,244 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO UPDATE - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - - $request->merge(['foto' => $namaFile]); - } - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331174021.php b/.history/app/Http/Controllers/penghuniController_20260331174021.php deleted file mode 100644 index 06a0035..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331174021.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO BARU - if ($request->hasFile('foto')) { - - // hapus foto lama (optional tapi bagus) - if ($rumah->foto && file_exists(public_path('foto_rumah/' . $rumah->foto))) { - unlink(public_path('foto_rumah/' . $rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 UPDATE FOTO - } - - // update data lainnya - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331174030.php b/.history/app/Http/Controllers/penghuniController_20260331174030.php deleted file mode 100644 index 1b43aa1..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331174030.php +++ /dev/null @@ -1,244 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO UPDATE - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - - $request->merge(['foto' => $namaFile]); - } - - $rumah->update($request->all()); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331174032.php b/.history/app/Http/Controllers/penghuniController_20260331174032.php deleted file mode 100644 index 06a0035..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331174032.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // 🔥 HANDLE FOTO BARU - if ($request->hasFile('foto')) { - - // hapus foto lama (optional tapi bagus) - if ($rumah->foto && file_exists(public_path('foto_rumah/' . $rumah->foto))) { - unlink(public_path('foto_rumah/' . $rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 UPDATE FOTO - } - - // update data lainnya - $rumah->update([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331181212.php b/.history/app/Http/Controllers/penghuniController_20260331181212.php deleted file mode 100644 index 1ef7280..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331181212.php +++ /dev/null @@ -1,261 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // 🔥 HANDLE FOTO (INI YANG DIPERBAIKI) - if ($request->hasFile('foto')) { - - $file = $request->file('foto'); - - // hapus foto lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; // 🔥 PENTING - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331184213.php b/.history/app/Http/Controllers/penghuniController_20260331184213.php deleted file mode 100644 index a692054..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331184213.php +++ /dev/null @@ -1,261 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - // VALIDASI - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // UPDATE DATA BIASA - $rumah->blok = $request->blok; - $rumah->no_rumah = $request->no_rumah; - $rumah->status = $request->status; - $rumah->luas_tanah = $request->luas_tanah; - $rumah->harga = $request->harga; - $rumah->keterangan = $request->keterangan; - - // 🔥 HANDLE FOTO (FIX FINAL) - if ($request->file('foto')) { - - $file = $request->file('foto'); - - // hapus foto lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 langsung set ke model - } - - $rumah->save(); // 🔥 WAJIB SAVE - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331235803.php b/.history/app/Http/Controllers/penghuniController_20260331235803.php deleted file mode 100644 index fcff14f..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331235803.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331235810.php b/.history/app/Http/Controllers/penghuniController_20260331235810.php deleted file mode 100644 index 122c58b..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331235810.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - diff --git a/.history/app/Http/Controllers/penghuniController_20260331235812.php b/.history/app/Http/Controllers/penghuniController_20260331235812.php deleted file mode 100644 index a692054..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331235812.php +++ /dev/null @@ -1,261 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - // VALIDASI - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - // UPDATE DATA BIASA - $rumah->blok = $request->blok; - $rumah->no_rumah = $request->no_rumah; - $rumah->status = $request->status; - $rumah->luas_tanah = $request->luas_tanah; - $rumah->harga = $request->harga; - $rumah->keterangan = $request->keterangan; - - // 🔥 HANDLE FOTO (FIX FINAL) - if ($request->file('foto')) { - - $file = $request->file('foto'); - - // hapus foto lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $rumah->foto = $namaFile; // 🔥 langsung set ke model - } - - $rumah->save(); // 🔥 WAJIB SAVE - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331235822.php b/.history/app/Http/Controllers/penghuniController_20260331235822.php deleted file mode 100644 index f4f36c2..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331235822.php +++ /dev/null @@ -1,259 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260331235830.php b/.history/app/Http/Controllers/penghuniController_20260331235830.php deleted file mode 100644 index 30ef0e4..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260331235830.php +++ /dev/null @@ -1,259 +0,0 @@ -has('blok')) { - - // 🔥 HANDLE UPLOAD FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::all(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260401002726.php b/.history/app/Http/Controllers/penghuniController_20260401002726.php deleted file mode 100644 index 701cca2..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260401002726.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); -} - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260401002736.php b/.history/app/Http/Controllers/penghuniController_20260401002736.php deleted file mode 100644 index 47924a6..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260401002736.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::all() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260401002820.php b/.history/app/Http/Controllers/penghuniController_20260401002820.php deleted file mode 100644 index f4f52bb..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260401002820.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) -{ - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); -} - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260401002824.php b/.history/app/Http/Controllers/penghuniController_20260401002824.php deleted file mode 100644 index d34ac1f..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260401002824.php +++ /dev/null @@ -1,260 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) - { - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); - } - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260401103643.php b/.history/app/Http/Controllers/penghuniController_20260401103643.php deleted file mode 100644 index 4f80ec8..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260401103643.php +++ /dev/null @@ -1,274 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233400.php b/.history/app/Http/Controllers/penghuniController_20260413233400.php deleted file mode 100644 index 392d52e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233400.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', auth()->id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => auth()->id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233401.php b/.history/app/Http/Controllers/penghuniController_20260413233401.php deleted file mode 100644 index 392d52e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233401.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', auth()->id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => auth()->id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233409.php b/.history/app/Http/Controllers/penghuniController_20260413233409.php deleted file mode 100644 index aa48a95..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233409.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', auth()->id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233410.php b/.history/app/Http/Controllers/penghuniController_20260413233410.php deleted file mode 100644 index 392d52e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233410.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', auth()->id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => auth()->id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233456.php b/.history/app/Http/Controllers/penghuniController_20260413233456.php deleted file mode 100644 index c5a05fc..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233456.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', auth()->id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233513.php b/.history/app/Http/Controllers/penghuniController_20260413233513.php deleted file mode 100644 index 93c4478..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233513.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', auth()->id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233730.php b/.history/app/Http/Controllers/penghuniController_20260413233730.php deleted file mode 100644 index fca2e09..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233730.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', ())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233732.php b/.history/app/Http/Controllers/penghuniController_20260413233732.php deleted file mode 100644 index 5beefea..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233732.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', Auth())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233737.php b/.history/app/Http/Controllers/penghuniController_20260413233737.php deleted file mode 100644 index 0fb2a60..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233737.php +++ /dev/null @@ -1,276 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - // 🔥 CEK BIAR TIDAK DOUBLE - if (Penghuni::where('user_id', Auth::id())->exists()) { - return back()->with('error', 'Data penghuni sudah ada'); - } - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233936.php b/.history/app/Http/Controllers/penghuniController_20260413233936.php deleted file mode 100644 index b8f7053..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233936.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - $user = auth()->user(); - -if (Penghuni::where('user_id', $user->id)->exists()) { - return back()->with('error', 'Data sudah ada'); -} - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233938.php b/.history/app/Http/Controllers/penghuniController_20260413233938.php deleted file mode 100644 index b8f7053..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233938.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - $user = auth()->user(); - -if (Penghuni::where('user_id', $user->id)->exists()) { - return back()->with('error', 'Data sudah ada'); -} - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233946.php b/.history/app/Http/Controllers/penghuniController_20260413233946.php deleted file mode 100644 index 09c2151..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233946.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - $user = Authuser(); - -if (Penghuni::where('user_id', $user->id)->exists()) { - return back()->with('error', 'Data sudah ada'); -} - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413233948.php b/.history/app/Http/Controllers/penghuniController_20260413233948.php deleted file mode 100644 index 082f30e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413233948.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function storeUser(Request $request) -{ - // 🔥 VALIDASI SIMPLE (UNTUK USER) - $request->validate([ - 'nama' => 'required|string|max:100', - 'email' => 'required|email|max:100', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_keluar' => 'nullable|date' - ]); - - $user = Auth::user(); - -if (Penghuni::where('user_id', $user->id)->exists()) { - return back()->with('error', 'Data sudah ada'); -} - - // 🔥 SIMPAN DATA - Penghuni::create([ - 'user_id' => Auth::id(), - 'nama' => $request->nama, - 'email' => $request->email, - 'status_huni' => $request->status_huni, - 'tanggal_keluar' => $request->tanggal_keluar, - 'status' => 'Aktif' - ]); - - return redirect()->route('user.home') - ->with('success', 'Data berhasil disimpan, silakan pilih rumah'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234246.php b/.history/app/Http/Controllers/penghuniController_20260413234246.php deleted file mode 100644 index 4f80ec8..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234246.php +++ /dev/null @@ -1,274 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234419.php b/.history/app/Http/Controllers/penghuniController_20260413234419.php deleted file mode 100644 index 1f391b7..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234419.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = auth()->id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234425.php b/.history/app/Http/Controllers/penghuniController_20260413234425.php deleted file mode 100644 index 8b1209b..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234425.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = a(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234428.php b/.history/app/Http/Controllers/penghuniController_20260413234428.php deleted file mode 100644 index 51613c2..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234428.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234430.php b/.history/app/Http/Controllers/penghuniController_20260413234430.php deleted file mode 100644 index 0161e6d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234430.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth::id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234437.php b/.history/app/Http/Controllers/penghuniController_20260413234437.php deleted file mode 100644 index 1f391b7..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234437.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = auth()->id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234441.php b/.history/app/Http/Controllers/penghuniController_20260413234441.php deleted file mode 100644 index 387c76d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234441.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = auth:id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234443.php b/.history/app/Http/Controllers/penghuniController_20260413234443.php deleted file mode 100644 index 7056202..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234443.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth:id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234448.php b/.history/app/Http/Controllers/penghuniController_20260413234448.php deleted file mode 100644 index 4f80ec8..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234448.php +++ /dev/null @@ -1,274 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234449.php b/.history/app/Http/Controllers/penghuniController_20260413234449.php deleted file mode 100644 index 1f391b7..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234449.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = auth()->id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234618.php b/.history/app/Http/Controllers/penghuniController_20260413234618.php deleted file mode 100644 index fd276e7..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234618.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = auth()->user()->id; - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234628.php b/.history/app/Http/Controllers/penghuniController_20260413234628.php deleted file mode 100644 index 8785743..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234628.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth:user()->id; - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234629.php b/.history/app/Http/Controllers/penghuniController_20260413234629.php deleted file mode 100644 index ca9bccd..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234629.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth::user()->id; - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234633.php b/.history/app/Http/Controllers/penghuniController_20260413234633.php deleted file mode 100644 index 8785743..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234633.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth:user()->id; - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234635.php b/.history/app/Http/Controllers/penghuniController_20260413234635.php deleted file mode 100644 index fd276e7..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234635.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = auth()->user()->id; - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234724.php b/.history/app/Http/Controllers/penghuniController_20260413234724.php deleted file mode 100644 index 9b19ec3..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234724.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth::id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234736.php b/.history/app/Http/Controllers/penghuniController_20260413234736.php deleted file mode 100644 index fc1a357..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234736.php +++ /dev/null @@ -1,277 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) -{ - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 TAMBAHAN (WAJIB BIAR TIDAK ERROR) - $validated['user_id'] = Auth::id(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); -} - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260413234826.php b/.history/app/Http/Controllers/penghuniController_20260413234826.php deleted file mode 100644 index 4f80ec8..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260413234826.php +++ /dev/null @@ -1,274 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416165948.php b/.history/app/Http/Controllers/penghuniController_20260416165948.php deleted file mode 100644 index 7622c4c..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416165948.php +++ /dev/null @@ -1,281 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() -{ - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); -} -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416165951.php b/.history/app/Http/Controllers/penghuniController_20260416165951.php deleted file mode 100644 index 5b8111d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416165951.php +++ /dev/null @@ -1,281 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416171338.php b/.history/app/Http/Controllers/penghuniController_20260416171338.php deleted file mode 100644 index a33688b..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416171338.php +++ /dev/null @@ -1,286 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK -if (!$request->tanggal_masuk) { - $validated['tanggal_masuk'] = now(); -} - -$penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416171344.php b/.history/app/Http/Controllers/penghuniController_20260416171344.php deleted file mode 100644 index c398820..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416171344.php +++ /dev/null @@ -1,286 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - if (!$request->tanggal_masuk) { - $validated['tanggal_masuk'] = now(); - } - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416171525.php b/.history/app/Http/Controllers/penghuniController_20260416171525.php deleted file mode 100644 index 5b8111d..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416171525.php +++ /dev/null @@ -1,281 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416171647.php b/.history/app/Http/Controllers/penghuniController_20260416171647.php deleted file mode 100644 index a33688b..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416171647.php +++ /dev/null @@ -1,286 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK -if (!$request->tanggal_masuk) { - $validated['tanggal_masuk'] = now(); -} - -$penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416171648.php b/.history/app/Http/Controllers/penghuniController_20260416171648.php deleted file mode 100644 index 8ffde9e..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416171648.php +++ /dev/null @@ -1,286 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - if (!$request->tanggal_masuk) { - $validated['tanggal_masuk'] = now(); - } - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416183725.php b/.history/app/Http/Controllers/penghuniController_20260416183725.php deleted file mode 100644 index 5570fc0..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416183725.php +++ /dev/null @@ -1,284 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416192837.php b/.history/app/Http/Controllers/penghuniController_20260416192837.php deleted file mode 100644 index c72e7b2..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416192837.php +++ /dev/null @@ -1,285 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416192913.php b/.history/app/Http/Controllers/penghuniController_20260416192913.php deleted file mode 100644 index c3299af..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416192913.php +++ /dev/null @@ -1,290 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - Penghuni::where('status_huni', 'Kontrak') - ->whereNotNull('tanggal_keluar') - ->where('tanggal_keluar', '<', now()) - ->update(['status' => 'Tidak Aktif']); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416192917.php b/.history/app/Http/Controllers/penghuniController_20260416192917.php deleted file mode 100644 index 223e1df..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416192917.php +++ /dev/null @@ -1,290 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - Penghuni::where('status_huni', 'Kontrak') - ->whereNotNull('tanggal_keluar') - ->where('tanggal_keluar', '<', now()) - ->update(['status' => 'Tidak Aktif']); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416200903.php b/.history/app/Http/Controllers/penghuniController_20260416200903.php deleted file mode 100644 index 38cc360..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416200903.php +++ /dev/null @@ -1,297 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - Penghuni::where('status_huni', 'Kontrak') - ->whereNotNull('tanggal_keluar') - ->where('tanggal_keluar', '<', now()) - ->update(['status' => 'Tidak Aktif']); - - Penghuni::where('status_huni', 'Kontrak') - ->whereNotNull('tanggal_keluar') - ->whereDate('tanggal_keluar', '<', now()) - ->update([ - 'status' => 'Tidak Aktif' - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Controllers/penghuniController_20260416200906.php b/.history/app/Http/Controllers/penghuniController_20260416200906.php deleted file mode 100644 index 227fa13..0000000 --- a/.history/app/Http/Controllers/penghuniController_20260416200906.php +++ /dev/null @@ -1,292 +0,0 @@ -has('blok')) { - - $namaFile = null; - - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, - ]); - - Penghuni::where('status_huni', 'Kontrak') - ->whereNotNull('tanggal_keluar') - ->where('tanggal_keluar', '<', now()) - ->update(['status' => 'Tidak Aktif']); - - - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // 🔥 FIX UTAMA DI SINI - $penghuni = Penghuni::with('rumah')->get(); - $rumahList = Rumah::with('penghuni')->get(); - - return view('admin.penghuni.index', compact('penghuni', 'rumahList')); - } - - // ========================= - // FORM TAMBAH - // ========================= - public function create() - { - $rumah = Rumah::where('status', 'Kosong')->get(); - return view('admin.penghuni.create', compact('rumah')); - } - - // ========================= - // SIMPAN DATA - // ========================= - public function store(Request $request) - { - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', - 'email' => 'required|email|max:100|unique:penghuni,email', - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - // 🔥 AUTO ISI TANGGAL MASUK - $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); - - $penghuni = Penghuni::create($validated); - - // set rumah jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil disimpan.'); - } - - // ========================= - // FORM EDIT - // ========================= - public function edit($id) - { - $penghuni = Penghuni::findOrFail($id); - - $rumahList = Rumah::where('status', 'Kosong') - ->orWhere('id', $penghuni->rumah_id) - ->get(); - - return view('admin.penghuni.edit', compact('penghuni', 'rumahList')); - } - - // ========================= - // UPDATE DATA - // ========================= - public function update(Request $request, $id) - { - $penghuni = Penghuni::findOrFail($id); - - $validated = $request->validate([ - 'nama' => 'required|string|max:100', - 'no_ktp' => ['required', Rule::unique('penghuni')->ignore($id)], - 'email' => ['required', 'email', Rule::unique('penghuni')->ignore($id)], - 'telepon' => 'nullable|string|max:20', - 'alamat' => 'required|string|max:150', - 'rumah_id' => 'nullable|exists:rumah,id', - 'status' => 'required|in:Aktif,Tidak Aktif', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', - 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', - ]); - - $oldRumahId = $penghuni->rumah_id; - - $penghuni->update($validated); - - // kosongkan rumah lama - if ($oldRumahId && $oldRumahId != $request->rumah_id) { - Rumah::where('id', $oldRumahId) - ->update(['status' => 'Kosong']); - } - - // set rumah baru jadi terisi - if ($request->rumah_id) { - Rumah::where('id', $request->rumah_id) - ->update(['status' => 'Terisi']); - } - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil diperbarui.'); - } - - // ========================= - // HAPUS DATA - // ========================= - public function destroy($id) - { - $penghuni = Penghuni::findOrFail($id); - - // kosongkan rumah - if ($penghuni->rumah_id) { - Rumah::where('id', $penghuni->rumah_id) - ->update(['status' => 'Kosong']); - } - - $penghuni->delete(); - - return redirect()->route('penghuni.index') - ->with('success', 'Data penghuni berhasil dihapus!'); - } - - // ========================= - // SIMPAN RUMAH (MODAL) - // ========================= - public function storeRumah(Request $request) - { - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - ]); - - // 🔥 HANDLE FOTO - $namaFile = null; - if ($request->hasFile('foto')) { - $file = $request->file('foto'); - $namaFile = time() . '.' . $file->getClientOriginalExtension(); - $file->move(public_path('foto_rumah'), $namaFile); - } - - Rumah::create([ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN - ]); - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } - - // ========================= - // EDIT RUMAH - // ========================= - public function editRumah($id) - { - $rumah = Rumah::findOrFail($id); - - return view('admin.penghuni.edit', [ - 'penghuni' => null, - 'rumah' => $rumah, - 'rumahList' => Rumah::with('penghuni')->get() - ]); - } - - // ========================= - // UPDATE RUMAH - // ========================= - public function updateRumah(Request $request, $id) -{ - $rumah = Rumah::findOrFail($id); - - $request->validate([ - 'blok' => 'required', - 'no_rumah' => 'required', - 'status' => 'required', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $data = [ - 'blok' => $request->blok, - 'no_rumah' => $request->no_rumah, - 'status' => $request->status, - 'luas_tanah' => $request->luas_tanah, - 'harga' => $request->harga, - 'keterangan' => $request->keterangan, - ]; - - // =============================== - // 🔥 TAMBAHAN LOGIC (PENTING) - // =============================== - $penghuni = \App\Models\Penghuni::where('rumah_id', $rumah->id)->first(); - - if ($penghuni) { - // kalau ada penghuni → paksa jadi terisi - $data['status'] = 'Terisi'; - } else { - // kalau tidak ada penghuni → kosong - $data['status'] = 'Kosong'; - } - // =============================== - - if ($request->hasFile('foto')) { - - // hapus lama - if ($rumah->foto && file_exists(public_path('foto_rumah/'.$rumah->foto))) { - unlink(public_path('foto_rumah/'.$rumah->foto)); - } - - $file = $request->file('foto'); - $namaFile = time().'_'.$file->getClientOriginalName(); - $file->move(public_path('foto_rumah'), $namaFile); - - $data['foto'] = $namaFile; - } - - $rumah->update($data); - - return redirect()->route('penghuni.index') - ->with('success', 'Data rumah berhasil diupdate'); -} - - // ========================= - // HAPUS RUMAH - // ========================= - public function destroyRumah($id) - { - $rumah = Rumah::findOrFail($id); - $rumah->delete(); - - return redirect()->back() - ->with('success', 'Data rumah berhasil dihapus'); - } - - public function indexRT() - { - $penghuni = Penghuni::with('rumah')->get(); - - return view('rt.penghuni.index', compact('penghuni')); - } -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194434.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416194434.php deleted file mode 100644 index f460b4f..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194434.php +++ /dev/null @@ -1,20 +0,0 @@ -user()->email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194516.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416194516.php deleted file mode 100644 index e1cdaca..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194516.php +++ /dev/null @@ -1,27 +0,0 @@ -email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194518.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416194518.php deleted file mode 100644 index 2e6a3db..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194518.php +++ /dev/null @@ -1,27 +0,0 @@ -email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194524.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416194524.php deleted file mode 100644 index b51cd51..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416194524.php +++ /dev/null @@ -1,27 +0,0 @@ -user()->email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195251.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195251.php deleted file mode 100644 index b0fbf17..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195251.php +++ /dev/null @@ -1,27 +0,0 @@ -check() ? auth()->user()->email : null - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195254.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195254.php deleted file mode 100644 index b51cd51..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195254.php +++ /dev/null @@ -1,27 +0,0 @@ -user()->email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195301.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195301.php deleted file mode 100644 index ddb4d0e..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195301.php +++ /dev/null @@ -1,27 +0,0 @@ -check() ? auth()->user()->email : null)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195317.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195317.php deleted file mode 100644 index 9dc1bde..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195317.php +++ /dev/null @@ -1,27 +0,0 @@ -user())->email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195322.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195322.php deleted file mode 100644 index b51cd51..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195322.php +++ /dev/null @@ -1,27 +0,0 @@ -user()->email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195334.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195334.php deleted file mode 100644 index 33fb19e..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195334.php +++ /dev/null @@ -1,27 +0,0 @@ -emaill)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195338.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195338.php deleted file mode 100644 index 2e6a3db..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195338.php +++ /dev/null @@ -1,27 +0,0 @@ -email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195346.php b/.history/app/Http/Middleware/CekStatusPenghuni_20260416195346.php deleted file mode 100644 index 628a49d..0000000 --- a/.history/app/Http/Middleware/CekStatusPenghuni_20260416195346.php +++ /dev/null @@ -1,28 +0,0 @@ -email)->first(); - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - return redirect()->route('user.home') - ->with('error', 'Kontrak Anda telah berakhir'); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260331095109.php b/.history/app/Http/Middleware/RoleMiddleware_20260331095109.php deleted file mode 100644 index 643afa4..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260331095109.php +++ /dev/null @@ -1,20 +0,0 @@ -role != $role) { - abort(403, 'AKSES DITOLAK'); - } - - return $next($request); - } -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260331095505.php b/.history/app/Http/Middleware/RoleMiddleware_20260331095505.php deleted file mode 100644 index 72f26a1..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260331095505.php +++ /dev/null @@ -1,23 +0,0 @@ -check()) { - return redirect('/login'); - } - - if (auth()->user()->role != $role) { - abort(403); - } - - return $next($request); -} -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260331095510.php b/.history/app/Http/Middleware/RoleMiddleware_20260331095510.php deleted file mode 100644 index 9329a69..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260331095510.php +++ /dev/null @@ -1,23 +0,0 @@ -check()) { - return redirect('/login'); - } - - if (auth()->user()->role != $role) { - abort(403); - } - - return $next($request); - } -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260416102830.php b/.history/app/Http/Middleware/RoleMiddleware_20260416102830.php deleted file mode 100644 index 9fe12e5..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260416102830.php +++ /dev/null @@ -1,23 +0,0 @@ -user()->role != $role) { - abort(403); - } - - return $next($request); - } -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260416102832.php b/.history/app/Http/Middleware/RoleMiddleware_20260416102832.php deleted file mode 100644 index 4a3dc82..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260416102832.php +++ /dev/null @@ -1,23 +0,0 @@ -user()->role != $role) { - abort(403); - } - - return $next($request); - } -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260416102839.php b/.history/app/Http/Middleware/RoleMiddleware_20260416102839.php deleted file mode 100644 index 6884e40..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260416102839.php +++ /dev/null @@ -1,23 +0,0 @@ -role != $role) { - abort(403); - } - - return $next($request); - } -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260416102841.php b/.history/app/Http/Middleware/RoleMiddleware_20260416102841.php deleted file mode 100644 index e9f1cc5..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260416102841.php +++ /dev/null @@ -1,23 +0,0 @@ -role != $role) { - abort(403); - } - - return $next($request); - } -} diff --git a/.history/app/Http/Middleware/RoleMiddleware_20260416102844.php b/.history/app/Http/Middleware/RoleMiddleware_20260416102844.php deleted file mode 100644 index 405ac31..0000000 --- a/.history/app/Http/Middleware/RoleMiddleware_20260416102844.php +++ /dev/null @@ -1,23 +0,0 @@ -role != $role) { - abort(403); - } - - return $next($request); - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212150.php b/.history/app/Mail/NotifPengaduan_20260413212150.php deleted file mode 100644 index 8d106d7..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212150.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212238.php b/.history/app/Mail/NotifPengaduan_20260413212238.php deleted file mode 100644 index 101abd8..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212238.php +++ /dev/null @@ -1,66 +0,0 @@ - - */ - public function attachments(): array - { - return []; - } - - public $layanan; - -public function __construct($layanan) -{ - $this->layanan = $layanan; -} - -public function build() -{ - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); -} -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212245.php b/.history/app/Mail/NotifPengaduan_20260413212245.php deleted file mode 100644 index 8146825..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212245.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ - public function attachments(): array - { - return []; - } - - -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212247.php b/.history/app/Mail/NotifPengaduan_20260413212247.php deleted file mode 100644 index 8d106d7..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212247.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212259.php b/.history/app/Mail/NotifPengaduan_20260413212259.php deleted file mode 100644 index c64a462..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212259.php +++ /dev/null @@ -1,53 +0,0 @@ -layanan = $layanan; -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212303.php b/.history/app/Mail/NotifPengaduan_20260413212303.php deleted file mode 100644 index dd5c221..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212303.php +++ /dev/null @@ -1,53 +0,0 @@ -layanan = $layanan; - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212312.php b/.history/app/Mail/NotifPengaduan_20260413212312.php deleted file mode 100644 index 86073d7..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212312.php +++ /dev/null @@ -1,53 +0,0 @@ -layanan = $layanan; - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212334.php b/.history/app/Mail/NotifPengaduan_20260413212334.php deleted file mode 100644 index c7e65f2..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212334.php +++ /dev/null @@ -1,53 +0,0 @@ -laya nan = $layanan; - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212336.php b/.history/app/Mail/NotifPengaduan_20260413212336.php deleted file mode 100644 index 86073d7..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212336.php +++ /dev/null @@ -1,53 +0,0 @@ -layanan = $layanan; - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212344.php b/.history/app/Mail/NotifPengaduan_20260413212344.php deleted file mode 100644 index b28cb8a..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212344.php +++ /dev/null @@ -1,59 +0,0 @@ -layanan = $layanan; - } - - public function build() -{ - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212349.php b/.history/app/Mail/NotifPengaduan_20260413212349.php deleted file mode 100644 index 17463c2..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212349.php +++ /dev/null @@ -1,59 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212454.php b/.history/app/Mail/NotifPengaduan_20260413212454.php deleted file mode 100644 index 9609467..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212454.php +++ /dev/null @@ -1,61 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212457.php b/.history/app/Mail/NotifPengaduan_20260413212457.php deleted file mode 100644 index f2094f5..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212457.php +++ /dev/null @@ -1,61 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212501.php b/.history/app/Mail/NotifPengaduan_20260413212501.php deleted file mode 100644 index 4a1e201..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212501.php +++ /dev/null @@ -1,61 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212711.php b/.history/app/Mail/NotifPengaduan_20260413212711.php deleted file mode 100644 index 1c5a999..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212711.php +++ /dev/null @@ -1,62 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212712.php b/.history/app/Mail/NotifPengaduan_20260413212712.php deleted file mode 100644 index 3d95c0a..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212712.php +++ /dev/null @@ -1,63 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413212720.php b/.history/app/Mail/NotifPengaduan_20260413212720.php deleted file mode 100644 index 1c5a999..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413212720.php +++ /dev/null @@ -1,62 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Notif Pengaduan', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/NotifPengaduan_20260413213026.php b/.history/app/Mail/NotifPengaduan_20260413213026.php deleted file mode 100644 index f242302..0000000 --- a/.history/app/Mail/NotifPengaduan_20260413213026.php +++ /dev/null @@ -1,21 +0,0 @@ -layanan = $layanan; - } - - public function build() - { - return $this->subject('Update Pengaduan Anda') - ->view('emails.pengaduan'); - } -} diff --git a/.history/app/Mail/OtpMail_20260417150839.php b/.history/app/Mail/OtpMail_20260417150839.php deleted file mode 100644 index 8ecc2b7..0000000 --- a/.history/app/Mail/OtpMail_20260417150839.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417150917.php b/.history/app/Mail/OtpMail_20260417150917.php deleted file mode 100644 index e260e9e..0000000 --- a/.history/app/Mail/OtpMail_20260417150917.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; -} - -public function build() -{ - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417150926.php b/.history/app/Mail/OtpMail_20260417150926.php deleted file mode 100644 index 76f631b..0000000 --- a/.history/app/Mail/OtpMail_20260417150926.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417153454.php b/.history/app/Mail/OtpMail_20260417153454.php deleted file mode 100644 index ac468bf..0000000 --- a/.history/app/Mail/OtpMail_20260417153454.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() -{ - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); // ✅ HARUS SESUAI -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417153457.php b/.history/app/Mail/OtpMail_20260417153457.php deleted file mode 100644 index 6d1ca53..0000000 --- a/.history/app/Mail/OtpMail_20260417153457.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); // ✅ HARUS SESUAI - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417153459.php b/.history/app/Mail/OtpMail_20260417153459.php deleted file mode 100644 index ac468bf..0000000 --- a/.history/app/Mail/OtpMail_20260417153459.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() -{ - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); // ✅ HARUS SESUAI -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417153502.php b/.history/app/Mail/OtpMail_20260417153502.php deleted file mode 100644 index fdd17b8..0000000 --- a/.history/app/Mail/OtpMail_20260417153502.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); // ✅ HARUS SESUAI - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417154104.php b/.history/app/Mail/OtpMail_20260417154104.php deleted file mode 100644 index 6d1b065..0000000 --- a/.history/app/Mail/OtpMail_20260417154104.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; -} - -public function build() -{ - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ WAJIB INI - ->with([ - 'otp' => $this->otp - ]); -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417154107.php b/.history/app/Mail/OtpMail_20260417154107.php deleted file mode 100644 index eaa55a9..0000000 --- a/.history/app/Mail/OtpMail_20260417154107.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ WAJIB INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417154110.php b/.history/app/Mail/OtpMail_20260417154110.php deleted file mode 100644 index 6ac1383..0000000 --- a/.history/app/Mail/OtpMail_20260417154110.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ WAJIB INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417155118.php b/.history/app/Mail/OtpMail_20260417155118.php deleted file mode 100644 index 27e9981..0000000 --- a/.history/app/Mail/OtpMail_20260417155118.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161416.php b/.history/app/Mail/OtpMail_20260417161416.php deleted file mode 100644 index 4d464bf..0000000 --- a/.history/app/Mail/OtpMail_20260417161416.php +++ /dev/null @@ -1,239 +0,0 @@ -otp = $otp; - } - - validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} - - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161418.php b/.history/app/Mail/OtpMail_20260417161418.php deleted file mode 100644 index 27e9981..0000000 --- a/.history/app/Mail/OtpMail_20260417161418.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161421.php b/.history/app/Mail/OtpMail_20260417161421.php deleted file mode 100644 index 4d464bf..0000000 --- a/.history/app/Mail/OtpMail_20260417161421.php +++ /dev/null @@ -1,239 +0,0 @@ -otp = $otp; - } - - validate([ - 'login' => 'required', - 'password' => 'required' - ]); - - $login = $request->login; - - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; - - if (Auth::attempt([$field => $login, 'password' => $request->password])) { - - $request->session()->regenerate(); - - $user = Auth::user(); - - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { - 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), - default => redirect('/user/home'), - }; - } - - return back()->with('error', 'Login gagal!'); - } - - // ================= REGISTER ================= - - public function register() - { - return view('auth.register'); - } - - public function prosesRegister(Request $request) - { - // VALIDASI - $request->validate([ - 'name' => 'required', - 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:6', - ]); - - // DEBUG (WAJIB COBA) - // dd($request->all()); - - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, - 'password' => Hash::make($request->password), - 'role' => 'user' - ]); - - return redirect('/login')->with('success', 'Register berhasil'); - } - - // ================= LOGOUT ================= - - public function logout(Request $request) - { - Auth::logout(); - - $request->session()->invalidate(); - $request->session()->regenerateToken(); - - return redirect('/login'); - } - - public function forgotForm() - { - return view('auth.forgot'); - } - - public function sendOtp(Request $request) - { - $request->validate([ - 'email' => 'required|email' - ]); - - $user = User::where('email', $request->email)->first(); - - if (!$user) { - return back()->with('error', 'Email tidak ditemukan'); - } - - $otp = rand(100000, 999999); - - $user->otp_code = $otp; - $user->otp_expired = now()->addMinutes(5); - $user->save(); - - Mail::to($user->email)->send(new OtpMail($otp)); - - session(['reset_email' => $user->email]); - - return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email'); - } - - public function otpForm() - { - return view('auth.otp'); - } - - public function verifyOtp(Request $request) - { - $request->validate([ - 'otp' => 'required' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - if ($user->otp_code != $request->otp) { - return back()->with('error', 'OTP salah'); - } - - if (Carbon::now()->gt($user->otp_expired)) { - return back()->with('error', 'OTP expired'); - } - - return redirect()->route('password.reset'); - } - - public function resetForm() - { - return view('auth.reset'); - } - - public function resetPassword(Request $request) - { - $request->validate([ - 'password' => 'required|min:6|confirmed' - ]); - - $user = User::where('email', session('reset_email'))->first(); - - if (!$user) { - return redirect()->route('password.forgot'); - } - - $user->password = Hash::make($request->password); - $user->otp_code = null; - $user->otp_expired = null; - $user->save(); - - return redirect('/login')->with('success', 'Password berhasil direset'); - } -} - - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161422.php b/.history/app/Mail/OtpMail_20260417161422.php deleted file mode 100644 index 27e9981..0000000 --- a/.history/app/Mail/OtpMail_20260417161422.php +++ /dev/null @@ -1,61 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp'); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161427.php b/.history/app/Mail/OtpMail_20260417161427.php deleted file mode 100644 index bd44928..0000000 --- a/.history/app/Mail/OtpMail_20260417161427.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() -{ - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161431.php b/.history/app/Mail/OtpMail_20260417161431.php deleted file mode 100644 index 4fffe5e..0000000 --- a/.history/app/Mail/OtpMail_20260417161431.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161708.php b/.history/app/Mail/OtpMail_20260417161708.php deleted file mode 100644 index afb88ff..0000000 --- a/.history/app/Mail/OtpMail_20260417161708.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: '', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161710.php b/.history/app/Mail/OtpMail_20260417161710.php deleted file mode 100644 index 0d45909..0000000 --- a/.history/app/Mail/OtpMail_20260417161710.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'emails.otp', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161717.php b/.history/app/Mail/OtpMail_20260417161717.php deleted file mode 100644 index afb88ff..0000000 --- a/.history/app/Mail/OtpMail_20260417161717.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: '', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161718.php b/.history/app/Mail/OtpMail_20260417161718.php deleted file mode 100644 index 4fffe5e..0000000 --- a/.history/app/Mail/OtpMail_20260417161718.php +++ /dev/null @@ -1,64 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'view.name', - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161921.php b/.history/app/Mail/OtpMail_20260417161921.php deleted file mode 100644 index 48a1c10..0000000 --- a/.history/app/Mail/OtpMail_20260417161921.php +++ /dev/null @@ -1,67 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content -{ - return new Content( - view: 'emails.otp', ✅ - with: [ - 'otp' => $this->otp - ] - ); -} - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161933.php b/.history/app/Mail/OtpMail_20260417161933.php deleted file mode 100644 index 9ba5461..0000000 --- a/.history/app/Mail/OtpMail_20260417161933.php +++ /dev/null @@ -1,67 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') // ✅ HARUS INI - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'emails.otp', ✅ - with: [ - 'otp' => $this->otp - ] - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161944.php b/.history/app/Mail/OtpMail_20260417161944.php deleted file mode 100644 index 8f3f80d..0000000 --- a/.history/app/Mail/OtpMail_20260417161944.php +++ /dev/null @@ -1,67 +0,0 @@ -otp = $otp; - } - - public function build() -{ - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') - ->with([ - 'otp' => $this->otp - ]); -} - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'emails.otp', ✅ - with: [ - 'otp' => $this->otp - ] - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417161947.php b/.history/app/Mail/OtpMail_20260417161947.php deleted file mode 100644 index 7f6d8a3..0000000 --- a/.history/app/Mail/OtpMail_20260417161947.php +++ /dev/null @@ -1,67 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') - ->with([ - 'otp' => $this->otp - ]); - } - - /** - * Get the message envelope. - */ - public function envelope(): Envelope - { - return new Envelope( - subject: 'Otp Mail', - ); - } - - /** - * Get the message content definition. - */ - public function content(): Content - { - return new Content( - view: 'emails.otp', ✅ - with: [ - 'otp' => $this->otp - ] - ); - } - - /** - * Get the attachments for the message. - * - * @return array - */ - public function attachments(): array - { - return []; - } -} diff --git a/.history/app/Mail/OtpMail_20260417162154.php b/.history/app/Mail/OtpMail_20260417162154.php deleted file mode 100644 index b929867..0000000 --- a/.history/app/Mail/OtpMail_20260417162154.php +++ /dev/null @@ -1,31 +0,0 @@ -otp = $otp; - } - - public function build() - { - return $this->subject('Kode OTP Reset Password') - ->view('emails.otp') - ->with([ - 'otp' => $this->otp - ]); - } -} diff --git a/.history/app/Models/Informasi_20260414202408.php b/.history/app/Models/Informasi_20260414202408.php deleted file mode 100644 index 67299d0..0000000 --- a/.history/app/Models/Informasi_20260414202408.php +++ /dev/null @@ -1,10 +0,0 @@ - 'date', - ]; - - // Relasi ke penghuni - public function penghuni() - { - return $this->belongsTo(Penghuni::class, 'penghuni_id'); - } -} diff --git a/.history/app/Models/Iuran_20260401234041.php b/.history/app/Models/Iuran_20260401234041.php deleted file mode 100644 index 59f6e6e..0000000 --- a/.history/app/Models/Iuran_20260401234041.php +++ /dev/null @@ -1,35 +0,0 @@ - 'date', - ]; - - // Relasi ke penghuni - public function penghuni() - { - return $this->belongsTo(Penghuni::class, 'penghuni_id'); - } -} diff --git a/.history/app/Models/Iuran_20260401234046.php b/.history/app/Models/Iuran_20260401234046.php deleted file mode 100644 index bb01b28..0000000 --- a/.history/app/Models/Iuran_20260401234046.php +++ /dev/null @@ -1,36 +0,0 @@ - 'date', - ]; - - // Relasi ke penghuni - public function penghuni() - { - return $this->belongsTo(Penghuni::class, 'penghuni_id'); - } -} diff --git a/.history/app/Models/Layanan_20260329194735.php b/.history/app/Models/Layanan_20260329194735.php deleted file mode 100644 index 69ac87d..0000000 --- a/.history/app/Models/Layanan_20260329194735.php +++ /dev/null @@ -1,10 +0,0 @@ -belongsTo(Penghuni::class); - } -} diff --git a/.history/app/Models/Layanan_20260329200838.php b/.history/app/Models/Layanan_20260329200838.php deleted file mode 100644 index 40b8fca..0000000 --- a/.history/app/Models/Layanan_20260329200838.php +++ /dev/null @@ -1,30 +0,0 @@ -belongsTo(Penghuni::class); - } -} diff --git a/.history/app/Models/Layanan_20260329200841.php b/.history/app/Models/Layanan_20260329200841.php deleted file mode 100644 index 4c19572..0000000 --- a/.history/app/Models/Layanan_20260329200841.php +++ /dev/null @@ -1,30 +0,0 @@ -belongsTo(Penghuni::class); - } -} diff --git a/.history/app/Models/Layanan_20260410135155.php b/.history/app/Models/Layanan_20260410135155.php deleted file mode 100644 index fe3ac8f..0000000 --- a/.history/app/Models/Layanan_20260410135155.php +++ /dev/null @@ -1,30 +0,0 @@ -belongsTo(\App\Models\Penghuni::class); -} -} diff --git a/.history/app/Models/Layanan_20260410135158.php b/.history/app/Models/Layanan_20260410135158.php deleted file mode 100644 index fc85d6c..0000000 --- a/.history/app/Models/Layanan_20260410135158.php +++ /dev/null @@ -1,30 +0,0 @@ -belongsTo(\App\Models\Penghuni::class); - } -} diff --git a/.history/app/Models/Layanan_20260410140848.php b/.history/app/Models/Layanan_20260410140848.php deleted file mode 100644 index 935d5c1..0000000 --- a/.history/app/Models/Layanan_20260410140848.php +++ /dev/null @@ -1,31 +0,0 @@ -belongsTo(\App\Models\Penghuni::class); - } -} diff --git a/.history/app/Models/Layanan_20260410140849.php b/.history/app/Models/Layanan_20260410140849.php deleted file mode 100644 index 6d2f376..0000000 --- a/.history/app/Models/Layanan_20260410140849.php +++ /dev/null @@ -1,31 +0,0 @@ -belongsTo(\App\Models\Penghuni::class); - } -} diff --git a/.history/app/Models/Penghuni_20260331014002.php b/.history/app/Models/Penghuni_20260331014002.php deleted file mode 100644 index f6c16a2..0000000 --- a/.history/app/Models/Penghuni_20260331014002.php +++ /dev/null @@ -1,34 +0,0 @@ -belongsTo(Rumah::class, 'rumah_id'); - } -} - diff --git a/.history/app/Models/Penghuni_20260401002232.php b/.history/app/Models/Penghuni_20260401002232.php deleted file mode 100644 index 3b6cf68..0000000 --- a/.history/app/Models/Penghuni_20260401002232.php +++ /dev/null @@ -1,34 +0,0 @@ -belongsTo(Rumah::class, 'rumah_id'); -} -} - diff --git a/.history/app/Models/Penghuni_20260401002236.php b/.history/app/Models/Penghuni_20260401002236.php deleted file mode 100644 index 8a1c18b..0000000 --- a/.history/app/Models/Penghuni_20260401002236.php +++ /dev/null @@ -1,34 +0,0 @@ -belongsTo(Rumah::class, 'rumah_id'); - } -} - diff --git a/.history/app/Models/Penghuni_20260410135132.php b/.history/app/Models/Penghuni_20260410135132.php deleted file mode 100644 index 0fdcf12..0000000 --- a/.history/app/Models/Penghuni_20260410135132.php +++ /dev/null @@ -1,44 +0,0 @@ -belongsTo(Rumah::class, 'rumah_id'); - } - - public function user() -{ - return $this->belongsTo(\App\Models\User::class, 'email', 'email'); -} - -public function layanan() -{ - return $this->hasMany(\App\Models\Layanan::class); -} -} - diff --git a/.history/app/Models/Penghuni_20260410135137.php b/.history/app/Models/Penghuni_20260410135137.php deleted file mode 100644 index 99ea289..0000000 --- a/.history/app/Models/Penghuni_20260410135137.php +++ /dev/null @@ -1,44 +0,0 @@ -belongsTo(Rumah::class, 'rumah_id'); - } - - public function user() - { - return $this->belongsTo(\App\Models\User::class, 'email', 'email'); - } - - public function layanan() - { - return $this->hasMany(\App\Models\Layanan::class); - } -} - diff --git a/.history/app/Models/Penghuni_20260416182746.php b/.history/app/Models/Penghuni_20260416182746.php deleted file mode 100644 index aad3dba..0000000 --- a/.history/app/Models/Penghuni_20260416182746.php +++ /dev/null @@ -1,45 +0,0 @@ -belongsTo(Rumah::class, 'rumah_id'); - } - - public function user() - { - return $this->belongsTo(\App\Models\User::class, 'email', 'email'); - } - - public function layanan() - { - return $this->hasMany(\App\Models\Layanan::class); - } -} - diff --git a/.history/app/Models/Rumah_20260330205523.php b/.history/app/Models/Rumah_20260330205523.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/app/Models/Rumah_20260330205559.php b/.history/app/Models/Rumah_20260330205559.php deleted file mode 100644 index ae7bd18..0000000 --- a/.history/app/Models/Rumah_20260330205559.php +++ /dev/null @@ -1,31 +0,0 @@ -hasMany(Penghuni::class, 'no_rumah', 'no_rumah'); - } -} diff --git a/.history/app/Models/Rumah_20260330210440.php b/.history/app/Models/Rumah_20260330210440.php deleted file mode 100644 index 94b3248..0000000 --- a/.history/app/Models/Rumah_20260330210440.php +++ /dev/null @@ -1,32 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331084244.php b/.history/app/Models/Rumah_20260331084244.php deleted file mode 100644 index 85906fe..0000000 --- a/.history/app/Models/Rumah_20260331084244.php +++ /dev/null @@ -1,33 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331084246.php b/.history/app/Models/Rumah_20260331084246.php deleted file mode 100644 index d0f99fe..0000000 --- a/.history/app/Models/Rumah_20260331084246.php +++ /dev/null @@ -1,33 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331084612.php b/.history/app/Models/Rumah_20260331084612.php deleted file mode 100644 index 88d8a84..0000000 --- a/.history/app/Models/Rumah_20260331084612.php +++ /dev/null @@ -1,33 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331165556.php b/.history/app/Models/Rumah_20260331165556.php deleted file mode 100644 index fcad239..0000000 --- a/.history/app/Models/Rumah_20260331165556.php +++ /dev/null @@ -1,34 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331165559.php b/.history/app/Models/Rumah_20260331165559.php deleted file mode 100644 index 176dcaa..0000000 --- a/.history/app/Models/Rumah_20260331165559.php +++ /dev/null @@ -1,34 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331165601.php b/.history/app/Models/Rumah_20260331165601.php deleted file mode 100644 index 176dcaa..0000000 --- a/.history/app/Models/Rumah_20260331165601.php +++ /dev/null @@ -1,34 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260331165602.php b/.history/app/Models/Rumah_20260331165602.php deleted file mode 100644 index 6d555af..0000000 --- a/.history/app/Models/Rumah_20260331165602.php +++ /dev/null @@ -1,34 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } -} diff --git a/.history/app/Models/Rumah_20260401001819.php b/.history/app/Models/Rumah_20260401001819.php deleted file mode 100644 index ee7485c..0000000 --- a/.history/app/Models/Rumah_20260401001819.php +++ /dev/null @@ -1,39 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } - - public function penghuni() -{ - return $this->hasOne(Penghuni::class); -} -} diff --git a/.history/app/Models/Rumah_20260401001827.php b/.history/app/Models/Rumah_20260401001827.php deleted file mode 100644 index 9d597fb..0000000 --- a/.history/app/Models/Rumah_20260401001827.php +++ /dev/null @@ -1,36 +0,0 @@ -hasMany(Penghuni::class, 'rumah_id', 'id'); - } - - -} diff --git a/.history/app/Models/Rumah_20260401002026.php b/.history/app/Models/Rumah_20260401002026.php deleted file mode 100644 index d5f3105..0000000 --- a/.history/app/Models/Rumah_20260401002026.php +++ /dev/null @@ -1,36 +0,0 @@ -hasOne(Penghuni::class, 'rumah_id', 'id'); -} - - -} diff --git a/.history/app/Models/Rumah_20260401002032.php b/.history/app/Models/Rumah_20260401002032.php deleted file mode 100644 index 3cb8339..0000000 --- a/.history/app/Models/Rumah_20260401002032.php +++ /dev/null @@ -1,36 +0,0 @@ -hasOne(Penghuni::class, 'rumah_id', 'id'); - } - - -} diff --git a/.history/app/Models/User_20240312205242.php b/.history/app/Models/User_20240312205242.php deleted file mode 100644 index def621f..0000000 --- a/.history/app/Models/User_20240312205242.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'email', - 'password', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260329231157.php b/.history/app/Models/User_20260329231157.php deleted file mode 100644 index d79ab79..0000000 --- a/.history/app/Models/User_20260329231157.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - protected $fillable = [ - 'name' - 'email', - 'password', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260329231159.php b/.history/app/Models/User_20260329231159.php deleted file mode 100644 index def621f..0000000 --- a/.history/app/Models/User_20260329231159.php +++ /dev/null @@ -1,47 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'email', - 'password', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260329231213.php b/.history/app/Models/User_20260329231213.php deleted file mode 100644 index c81644f..0000000 --- a/.history/app/Models/User_20260329231213.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260401101643.php b/.history/app/Models/User_20260401101643.php deleted file mode 100644 index 3fe6b00..0000000 --- a/.history/app/Models/User_20260401101643.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password' - 'role', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260401101647.php b/.history/app/Models/User_20260401101647.php deleted file mode 100644 index ff6e724..0000000 --- a/.history/app/Models/User_20260401101647.php +++ /dev/null @@ -1,49 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - 'role', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260401155038.php b/.history/app/Models/User_20260401155038.php deleted file mode 100644 index 63dacbc..0000000 --- a/.history/app/Models/User_20260401155038.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - 'role', - 'photo', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } -} diff --git a/.history/app/Models/User_20260409090426.php b/.history/app/Models/User_20260409090426.php deleted file mode 100644 index ca5b649..0000000 --- a/.history/app/Models/User_20260409090426.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - 'role', - 'photo', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } - - public function penghuni() -{ - return $this->hasOne(Penghuni::class); -} -} diff --git a/.history/app/Models/User_20260409090429.php b/.history/app/Models/User_20260409090429.php deleted file mode 100644 index 3c8f650..0000000 --- a/.history/app/Models/User_20260409090429.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - 'role', - 'photo', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } - - public function penghuni() - { - return $this->hasOne(Penghuni::class); - } -} diff --git a/.history/app/Models/User_20260410135042.php b/.history/app/Models/User_20260410135042.php deleted file mode 100644 index c38f138..0000000 --- a/.history/app/Models/User_20260410135042.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - 'role', - 'photo', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } - - public function penghuni() -{ - return $this->hasOne(\App\Models\Penghuni::class, 'email', 'email'); -} -} diff --git a/.history/app/Models/User_20260410135045.php b/.history/app/Models/User_20260410135045.php deleted file mode 100644 index da38d39..0000000 --- a/.history/app/Models/User_20260410135045.php +++ /dev/null @@ -1,55 +0,0 @@ - - */ - protected $fillable = [ - 'name', - 'username', - 'email', - 'password', - 'role', - 'photo', - ]; - - /** - * The attributes that should be hidden for serialization. - * - * @var array - */ - protected $hidden = [ - 'password', - 'remember_token', - ]; - - /** - * Get the attributes that should be cast. - * - * @return array - */ - protected function casts(): array - { - return [ - 'email_verified_at' => 'datetime', - 'password' => 'hashed', - ]; - } - - public function penghuni() - { - return $this->hasOne(\App\Models\Penghuni::class, 'email', 'email'); - } -} diff --git a/.history/bootstrap/app_20240312205242.php b/.history/bootstrap/app_20240312205242.php deleted file mode 100644 index 7b162da..0000000 --- a/.history/bootstrap/app_20240312205242.php +++ /dev/null @@ -1,18 +0,0 @@ -withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', - health: '/up', - ) - ->withMiddleware(function (Middleware $middleware) { - // - }) - ->withExceptions(function (Exceptions $exceptions) { - // - })->create(); diff --git a/.history/bootstrap/app_20260331095413.php b/.history/bootstrap/app_20260331095413.php deleted file mode 100644 index e124fc2..0000000 --- a/.history/bootstrap/app_20260331095413.php +++ /dev/null @@ -1,40 +0,0 @@ -withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', - health: '/up', - ) - ->withMiddleware(function (Middleware $middleware) { - role != $role) { - abort(403, 'AKSES DITOLAK'); - } - - return $next($request); - } -} - }) - ->withExceptions(function (Exceptions $exceptions) { - // - })->create(); diff --git a/.history/bootstrap/app_20260331095416.php b/.history/bootstrap/app_20260331095416.php deleted file mode 100644 index 11cf2f6..0000000 --- a/.history/bootstrap/app_20260331095416.php +++ /dev/null @@ -1,18 +0,0 @@ -withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', - health: '/up', - ) - ->withMiddleware(function (Middleware $middleware) { - - }) - ->withExceptions(function (Exceptions $exceptions) { - // - })->create(); diff --git a/.history/bootstrap/app_20260331095417.php b/.history/bootstrap/app_20260331095417.php deleted file mode 100644 index cbc94c9..0000000 --- a/.history/bootstrap/app_20260331095417.php +++ /dev/null @@ -1,20 +0,0 @@ -withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', - health: '/up', - ) - ->withMiddleware(function (Middleware $middleware) { - $middleware->alias([ - 'role' => \App\Http\Middleware\RoleMiddleware::class, -]); - }) - ->withExceptions(function (Exceptions $exceptions) { - // - })->create(); diff --git a/.history/bootstrap/app_20260331095421.php b/.history/bootstrap/app_20260331095421.php deleted file mode 100644 index 99b735e..0000000 --- a/.history/bootstrap/app_20260331095421.php +++ /dev/null @@ -1,20 +0,0 @@ -withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', - health: '/up', - ) - ->withMiddleware(function (Middleware $middleware) { - $middleware->alias([ - 'role' => \App\Http\Middleware\RoleMiddleware::class, - ]); - }) - ->withExceptions(function (Exceptions $exceptions) { - // - })->create(); diff --git a/.history/config/app_20240312205242.php b/.history/config/app_20240312205242.php deleted file mode 100644 index f467267..0000000 --- a/.history/config/app_20240312205242.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => env('APP_TIMEZONE', 'UTC'), - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => env('APP_LOCALE', 'en'), - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000401.php b/.history/config/app_20260402000401.php deleted file mode 100644 index 14f0125..0000000 --- a/.history/config/app_20260402000401.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => env('APP_LOCALE', 'en'), - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000456.php b/.history/config/app_20260402000456.php deleted file mode 100644 index be68c53..0000000 --- a/.history/config/app_20260402000456.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => 'id', - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000458.php b/.history/config/app_20260402000458.php deleted file mode 100644 index 14f0125..0000000 --- a/.history/config/app_20260402000458.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => env('APP_LOCALE', 'en'), - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000751.php b/.history/config/app_20260402000751.php deleted file mode 100644 index d84d503..0000000 --- a/.history/config/app_20260402000751.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => env('APP_LOCALE', 'id'), - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000759.php b/.history/config/app_20260402000759.php deleted file mode 100644 index 2540706..0000000 --- a/.history/config/app_20260402000759.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - ''locale' => 'id', - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000802.php b/.history/config/app_20260402000802.php deleted file mode 100644 index d84d503..0000000 --- a/.history/config/app_20260402000802.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => env('APP_LOCALE', 'id'), - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/config/app_20260402000808.php b/.history/config/app_20260402000808.php deleted file mode 100644 index be68c53..0000000 --- a/.history/config/app_20260402000808.php +++ /dev/null @@ -1,126 +0,0 @@ - env('APP_NAME', 'Laravel'), - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | the application so that it's available within Artisan commands. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. The timezone - | is set to "UTC" by default as it is suitable for most use cases. - | - */ - - 'timezone' => 'Asia/Jakarta', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by Laravel's translation / localization methods. This option can be - | set to any locale for which you plan to have translation strings. - | - */ - - 'locale' => 'id', - - 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), - - 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is utilized by Laravel's encryption services and should be set - | to a random, 32 character string to ensure that all encrypted values - | are secure. You should do this prior to deploying the application. - | - */ - - 'cipher' => 'AES-256-CBC', - - 'key' => env('APP_KEY'), - - 'previous_keys' => [ - ...array_filter( - explode(',', env('APP_PREVIOUS_KEYS', '')) - ), - ], - - /* - |-------------------------------------------------------------------------- - | Maintenance Mode Driver - |-------------------------------------------------------------------------- - | - | These configuration options determine the driver used to determine and - | manage Laravel's "maintenance mode" status. The "cache" driver will - | allow maintenance mode to be controlled across multiple machines. - | - | Supported drivers: "file", "cache" - | - */ - - 'maintenance' => [ - 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), - 'store' => env('APP_MAINTENANCE_STORE', 'database'), - ], - -]; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20240312205242.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20240312205242.php deleted file mode 100644 index 05fb5d9..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20240312205242.php +++ /dev/null @@ -1,49 +0,0 @@ -id(); - $table->string('name'); - $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); - $table->string('password'); - $table->rememberToken(); - $table->timestamps(); - }); - - Schema::create('password_reset_tokens', function (Blueprint $table) { - $table->string('email')->primary(); - $table->string('token'); - $table->timestamp('created_at')->nullable(); - }); - - Schema::create('sessions', function (Blueprint $table) { - $table->string('id')->primary(); - $table->foreignId('user_id')->nullable()->index(); - $table->string('ip_address', 45)->nullable(); - $table->text('user_agent')->nullable(); - $table->longText('payload'); - $table->integer('last_activity')->index(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('users'); - Schema::dropIfExists('password_reset_tokens'); - Schema::dropIfExists('sessions'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260329221729.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260329221729.php deleted file mode 100644 index 1ea4e1b..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260329221729.php +++ /dev/null @@ -1,15 +0,0 @@ -Schema::create('users', function (Blueprint $table) { - $table->id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'penghuni']) - ->default('penghuni'); - - $table->rememberToken(); - $table->timestamps(); -}); diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260329221732.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260329221732.php deleted file mode 100644 index 05fb5d9..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260329221732.php +++ /dev/null @@ -1,49 +0,0 @@ -id(); - $table->string('name'); - $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); - $table->string('password'); - $table->rememberToken(); - $table->timestamps(); - }); - - Schema::create('password_reset_tokens', function (Blueprint $table) { - $table->string('email')->primary(); - $table->string('token'); - $table->timestamp('created_at')->nullable(); - }); - - Schema::create('sessions', function (Blueprint $table) { - $table->string('id')->primary(); - $table->foreignId('user_id')->nullable()->index(); - $table->string('ip_address', 45)->nullable(); - $table->text('user_agent')->nullable(); - $table->longText('payload'); - $table->integer('last_activity')->index(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('users'); - Schema::dropIfExists('password_reset_tokens'); - Schema::dropIfExists('sessions'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260329222212.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260329222212.php deleted file mode 100644 index 3bfaed6..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260329222212.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'penghuni']) - ->default('penghuni'); - - $table->rememberToken(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('users'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260401223543.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260401223543.php deleted file mode 100644 index 786ee08..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260401223543.php +++ /dev/null @@ -1,31 +0,0 @@ -id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'user'])->default('user'); - - $table->rememberToken(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('users'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153219.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153219.php deleted file mode 100644 index 40c5e72..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153219.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'user'])->default('user'); - - - - $table->rememberToken(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('users'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153221.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153221.php deleted file mode 100644 index ce53c71..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153221.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'user'])->default('user'); - - $table->string('otp_code')->nullable(); - $table->dateTime('otp_expired')->nullable(); - - - $table->rememberToken(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('users'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153226.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153226.php deleted file mode 100644 index 194177e..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153226.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'user'])->default('user'); - - $table->string('otp_code')->nullable(); - $table->dateTime('otp_expired')->nullable(); - - - $table->rememberToken(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('users'); - } -}; diff --git a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153230.php b/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153230.php deleted file mode 100644 index 5766f9a..0000000 --- a/.history/database/migrations/0001_01_01_000000_create_users_table_20260417153230.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - - $table->string('name'); - $table->string('username')->unique(); - $table->string('email')->unique(); - - $table->string('password'); - - $table->enum('role', ['admin', 'user'])->default('user'); - - $table->string('otp_code')->nullable(); - $table->dateTime('otp_expired')->nullable(); - - - $table->rememberToken(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('users'); - } -}; diff --git a/.history/database/migrations/2025_08_19_020000_create_rumah_table_20260330214539.php b/.history/database/migrations/2025_08_19_020000_create_rumah_table_20260330214539.php deleted file mode 100644 index eeaacbc..0000000 --- a/.history/database/migrations/2025_08_19_020000_create_rumah_table_20260330214539.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); -}); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_020000_create_rumah_table_20260401222355.php b/.history/database/migrations/2025_08_19_020000_create_rumah_table_20260401222355.php deleted file mode 100644 index acf29a8..0000000 --- a/.history/database/migrations/2025_08_19_020000_create_rumah_table_20260401222355.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->string('foto')->nullable(); - $table->timestamps(); -}); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213916.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213916.php deleted file mode 100644 index 05b9304..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213916.php +++ /dev/null @@ -1,22 +0,0 @@ -2026_03_30_142700_create_rumah_table ................................................................................................ 33.02ms FAIL - - Illuminate\Database\QueryException - - SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists (Connection: mysql, SQL: create table `penghuni` (`id` bigint unsigned not null auto_increment primary key, `nama` varchar(100) not null, `no_ktp` varchar(20) not null, `email` varchar(100) not null, `telepon` varchar(20) null, `alamat` varchar(150) not null, `rumah_id` bigint unsigned null, `status` enum('Aktif', 'Tidak Aktif') not null default 'Aktif', `status_huni` enum('Tetap', 'Kontrak') not null default 'Tetap', `tanggal_masuk` date null, `tanggal_keluar` date null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_0900_ai_ci') - - at vendor\laravel\framework\src\Illuminate\Database\Connection.php:825 - 821▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 822▕ ); - 823▕ } - 824▕ - ➜ 825▕ throw new QueryException( - 826▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 827▕ ); - 828▕ } - 829▕ } - - 1 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists") - - 2 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOStatement::execute() diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213918.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213918.php deleted file mode 100644 index 05b9304..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213918.php +++ /dev/null @@ -1,22 +0,0 @@ -2026_03_30_142700_create_rumah_table ................................................................................................ 33.02ms FAIL - - Illuminate\Database\QueryException - - SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists (Connection: mysql, SQL: create table `penghuni` (`id` bigint unsigned not null auto_increment primary key, `nama` varchar(100) not null, `no_ktp` varchar(20) not null, `email` varchar(100) not null, `telepon` varchar(20) null, `alamat` varchar(150) not null, `rumah_id` bigint unsigned null, `status` enum('Aktif', 'Tidak Aktif') not null default 'Aktif', `status_huni` enum('Tetap', 'Kontrak') not null default 'Tetap', `tanggal_masuk` date null, `tanggal_keluar` date null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_0900_ai_ci') - - at vendor\laravel\framework\src\Illuminate\Database\Connection.php:825 - 821▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 822▕ ); - 823▕ } - 824▕ - ➜ 825▕ throw new QueryException( - 826▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 827▕ ); - 828▕ } - 829▕ } - - 1 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists") - - 2 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOStatement::execute() diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213919.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213919.php deleted file mode 100644 index 05b9304..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213919.php +++ /dev/null @@ -1,22 +0,0 @@ -2026_03_30_142700_create_rumah_table ................................................................................................ 33.02ms FAIL - - Illuminate\Database\QueryException - - SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists (Connection: mysql, SQL: create table `penghuni` (`id` bigint unsigned not null auto_increment primary key, `nama` varchar(100) not null, `no_ktp` varchar(20) not null, `email` varchar(100) not null, `telepon` varchar(20) null, `alamat` varchar(150) not null, `rumah_id` bigint unsigned null, `status` enum('Aktif', 'Tidak Aktif') not null default 'Aktif', `status_huni` enum('Tetap', 'Kontrak') not null default 'Tetap', `tanggal_masuk` date null, `tanggal_keluar` date null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_0900_ai_ci') - - at vendor\laravel\framework\src\Illuminate\Database\Connection.php:825 - 821▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 822▕ ); - 823▕ } - 824▕ - ➜ 825▕ throw new QueryException( - 826▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 827▕ ); - 828▕ } - 829▕ } - - 1 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists") - - 2 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOStatement::execute() diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213921.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213921.php deleted file mode 100644 index 05b9304..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213921.php +++ /dev/null @@ -1,22 +0,0 @@ -2026_03_30_142700_create_rumah_table ................................................................................................ 33.02ms FAIL - - Illuminate\Database\QueryException - - SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists (Connection: mysql, SQL: create table `penghuni` (`id` bigint unsigned not null auto_increment primary key, `nama` varchar(100) not null, `no_ktp` varchar(20) not null, `email` varchar(100) not null, `telepon` varchar(20) null, `alamat` varchar(150) not null, `rumah_id` bigint unsigned null, `status` enum('Aktif', 'Tidak Aktif') not null default 'Aktif', `status_huni` enum('Tetap', 'Kontrak') not null default 'Tetap', `tanggal_masuk` date null, `tanggal_keluar` date null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_0900_ai_ci') - - at vendor\laravel\framework\src\Illuminate\Database\Connection.php:825 - 821▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 822▕ ); - 823▕ } - 824▕ - ➜ 825▕ throw new QueryException( - 826▕ $this->getName(), $query, $this->prepareBindings($bindings), $e - 827▕ ); - 828▕ } - 829▕ } - - 1 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'penghuni' already exists") - - 2 vendor\laravel\framework\src\Illuminate\Database\Connection.php:571 - PDOStatement::execute() diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213923.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213923.php deleted file mode 100644 index 40c8265..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213923.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); // Nomor KTP / NIK - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - $table->string('blok_rumah', 10)->nullable(); - $table->string('no_rumah', 10)->nullable(); - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('penghuni'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213928.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213928.php deleted file mode 100644 index ec03271..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330213928.php +++ /dev/null @@ -1,60 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214241.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214241.php deleted file mode 100644 index 3a83bdf..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214241.php +++ /dev/null @@ -1,57 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id')->nullable()->constrained('rumah'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214552.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214552.php deleted file mode 100644 index efdc8bd..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214552.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214600.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214600.php deleted file mode 100644 index 268341e..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214600.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214602.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214602.php deleted file mode 100644 index bca5172..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214602.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214621.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214621.php deleted file mode 100644 index 268341e..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214621.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214623.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214623.php deleted file mode 100644 index 3a83bdf..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214623.php +++ /dev/null @@ -1,57 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id')->nullable()->constrained('rumah'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214651.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214651.php deleted file mode 100644 index 8c3ba1e..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214651.php +++ /dev/null @@ -1,44 +0,0 @@ -id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id')->nullable()->constrained('rumah'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214712.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214712.php deleted file mode 100644 index 3a83bdf..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214712.php +++ /dev/null @@ -1,57 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id')->nullable()->constrained('rumah'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214714.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214714.php deleted file mode 100644 index 8c3ba1e..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214714.php +++ /dev/null @@ -1,44 +0,0 @@ -id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id')->nullable()->constrained('rumah'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214832.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214832.php deleted file mode 100644 index c7dc20e..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214832.php +++ /dev/null @@ -1,43 +0,0 @@ -id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // 🔥 RELASI - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); -}); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214918.php b/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214918.php deleted file mode 100644 index 3078846..0000000 --- a/.history/database/migrations/2025_08_19_031832_create_penghuni_table_20260330214918.php +++ /dev/null @@ -1,42 +0,0 @@ -id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // 🔥 RELASI - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); -}); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220534.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220534.php deleted file mode 100644 index 903fb53..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220534.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - $table->string('bukti_pembayaran')->nullable()->after('tanggal_bayar'); - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') // pastikan tabel penghuni juga singular - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220541.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220541.php deleted file mode 100644 index d66919a..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220541.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') // pastikan tabel penghuni juga singular - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220712.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220712.php deleted file mode 100644 index 72c96b9..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401220712.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225104.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225104.php deleted file mode 100644 index b8a04e3..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225104.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225105.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225105.php deleted file mode 100644 index 8cbb5d4..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225105.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->string('jenis_iuran'); // contoh: keamanan, kebersihan -$table->text('keterangan')->nullable(); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225109.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225109.php deleted file mode 100644 index 9edc550..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401225109.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->string('jenis_iuran'); // contoh: keamanan, kebersihan - $table->text('keterangan')->nullable(); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232356.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232356.php deleted file mode 100644 index 7586c42..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232356.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->string('jenis_iuran')-; // contoh: keamanan, kebersihan - $table->text('keterangan')->nullable(); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232358.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232358.php deleted file mode 100644 index 5317932..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232358.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->string('jenis_iuran')->; // contoh: keamanan, kebersihan - $table->text('keterangan')->nullable(); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232400.php b/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232400.php deleted file mode 100644 index c48b693..0000000 --- a/.history/database/migrations/2025_08_26_013910_create_iuran_table_20260401232400.php +++ /dev/null @@ -1,38 +0,0 @@ -id(); - $table->unsignedBigInteger('penghuni_id'); - $table->string('bulan'); - $table->year('tahun'); - $table->decimal('jumlah', 12, 2); - $table->string('jenis_iuran')->nullable(); // contoh: keamanan, kebersihan - $table->text('keterangan')->nullable(); - $table->enum('status', ['lunas', 'belum'])->default('belum'); - $table->date('tanggal_bayar')->nullable(); - - // 🔥 TAMBAHAN INI - $table->string('bukti_pembayaran')->nullable(); - - $table->timestamps(); - - $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); - }); - } - - public function down(): void - { - Schema::dropIfExists('iuran'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195208.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195208.php deleted file mode 100644 index 48d3a62..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195208.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195447.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195447.php deleted file mode 100644 index 8791c27..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195447.php +++ /dev/null @@ -1,38 +0,0 @@ -use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; - -return new class extends Migration -{ - public function up(): void - { - Schema::create('layanan', function (Blueprint $table) { - $table->id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195450.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195450.php deleted file mode 100644 index 8791c27..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195450.php +++ /dev/null @@ -1,38 +0,0 @@ -use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; - -return new class extends Migration -{ - public function up(): void - { - Schema::create('layanan', function (Blueprint $table) { - $table->id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195453.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195453.php deleted file mode 100644 index 48d3a62..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195453.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195458.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195458.php deleted file mode 100644 index 8fa2935..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195458.php +++ /dev/null @@ -1,41 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195502.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195502.php deleted file mode 100644 index 088a43c..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195502.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195932.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195932.php deleted file mode 100644 index 789ef05..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195932.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195936.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195936.php deleted file mode 100644 index 088a43c..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195936.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195939.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195939.php deleted file mode 100644 index 3806b7d..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195939.php +++ /dev/null @@ -1,39 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->null - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195941.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195941.php deleted file mode 100644 index 088a43c..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329195941.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200753.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200753.php deleted file mode 100644 index e72e267..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200753.php +++ /dev/null @@ -1,18 +0,0 @@ -Schema::create('layanan', function (Blueprint $table) { - $table->id(); - - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - $table->dateTime('tanggal_pengaduan'); - $table->string('kategori_masalah'); - $table->text('deskripsi'); - - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - $table->text('tanggapan_admin')->nullable(); - - $table->timestamps(); -}); diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200755.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200755.php deleted file mode 100644 index e72e267..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200755.php +++ /dev/null @@ -1,18 +0,0 @@ -Schema::create('layanan', function (Blueprint $table) { - $table->id(); - - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - $table->dateTime('tanggal_pengaduan'); - $table->string('kategori_masalah'); - $table->text('deskripsi'); - - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - $table->text('tanggapan_admin')->nullable(); - - $table->timestamps(); -}); diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200756.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200756.php deleted file mode 100644 index 088a43c..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200756.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200802.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200802.php deleted file mode 100644 index bf76d39..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200802.php +++ /dev/null @@ -1,20 +0,0 @@ -id(); - - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - $table->dateTime('tanggal_pengaduan'); - $table->string('kategori_masalah'); - $table->text('deskripsi'); - - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - $table->text('tanggapan_admin')->nullable(); - - $table->timestamps(); -}); diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200805.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200805.php deleted file mode 100644 index 088a43c..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200805.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200814.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200814.php deleted file mode 100644 index 088a43c..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200814.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - - // Relasi ke tabel penghuni - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - // Kolom sesuai tampilan - $table->dateTime('tanggal_pengaduan'); // tampil di tabel - $table->string('kategori_masalah'); // kebersihan, keamanan, dll - $table->text('deskripsi'); // deskripsi singkat - - // Status pengaduan - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - // Tanggapan admin - $table->text('tanggapan_admin')->nullable(); - $table->dateTime('tanggal_tanggapan')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200819.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200819.php deleted file mode 100644 index 8d77030..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200819.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - $table->dateTime('tanggal_pengaduan'); - $table->string('kategori_masalah'); - $table->text('deskripsi'); - - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - $table->text('tanggapan_admin')->nullable(); - - $table->timestamps(); -}); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200823.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200823.php deleted file mode 100644 index 4b545fa..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260329200823.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - $table->dateTime('tanggal_pengaduan'); - $table->string('kategori_masalah'); - $table->text('deskripsi'); - - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - $table->text('tanggapan_admin')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260410140812.php b/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260410140812.php deleted file mode 100644 index d6d9f1b..0000000 --- a/.history/database/migrations/2026_03_29_125209_create_layanan_table_20260410140812.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - - $table->foreignId('penghuni_id') - ->constrained('penghuni') - ->onDelete('cascade'); - - $table->dateTime('tanggal_pengaduan'); - $table->string('kategori_masalah'); - $table->text('deskripsi'); - - $table->string('foto')->nullable(); - - $table->enum('status', ['diajukan', 'diproses', 'selesai']) - ->default('diajukan'); - - $table->text('tanggapan_admin')->nullable(); - - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('layanan'); - } -}; diff --git a/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203252.php b/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203252.php deleted file mode 100644 index e6b2554..0000000 --- a/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203252.php +++ /dev/null @@ -1,28 +0,0 @@ -foreignId('rumah_id') - ->after('alamat') - ->constrained('rumah') - ->onDelete('cascade'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} diff --git a/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203322.php b/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203322.php deleted file mode 100644 index 80bee5e..0000000 --- a/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203322.php +++ /dev/null @@ -1,17 +0,0 @@ -public function up(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->foreignId('rumah_id') - ->after('alamat') - ->constrained('rumah') - ->onDelete('cascade'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} diff --git a/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203324.php b/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203324.php deleted file mode 100644 index e6b2554..0000000 --- a/.history/database/migrations/2026_03_30_133253_add_rumah_id_to_penghuni_table_20260330203324.php +++ /dev/null @@ -1,28 +0,0 @@ -foreignId('rumah_id') - ->after('alamat') - ->constrained('rumah') - ->onDelete('cascade'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330210042.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330210042.php deleted file mode 100644 index e6b2554..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330210042.php +++ /dev/null @@ -1,28 +0,0 @@ -foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213021.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213021.php deleted file mode 100644 index 1e5d2c6..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213021.php +++ /dev/null @@ -1,29 +0,0 @@ -foreignId('rumah_id') - // ->nullable() - // ->constrained('rumah') - // ->onDelete('set null'); - // }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213024.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213024.php deleted file mode 100644 index 242fa1f..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213024.php +++ /dev/null @@ -1,29 +0,0 @@ -foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213031.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213031.php deleted file mode 100644 index 0ea24c7..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213031.php +++ /dev/null @@ -1,29 +0,0 @@ -foreignId('rumah_id') - // ->nullable() - // ->constrained('rumah') - // ->onDelete('set null'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213327.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213327.php deleted file mode 100644 index e3b7759..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213327.php +++ /dev/null @@ -1,29 +0,0 @@ -foreignId('rumah_id') - // ->nullable() - // ->constrained('rumah') - // ->onDelete('set null'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213334.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213334.php deleted file mode 100644 index 7d69c33..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213334.php +++ /dev/null @@ -1,24 +0,0 @@ -use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; - -return new class extends Migration -{ - public function up(): void - { - Schema::table('penghuni', function (Blueprint $table) { - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - }); - } - - public function down(): void - { - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); - } -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213336.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213336.php deleted file mode 100644 index 7d69c33..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213336.php +++ /dev/null @@ -1,24 +0,0 @@ -use Illuminate\Database\Migrations\Migration; -use Illuminate\Database\Schema\Blueprint; -use Illuminate\Support\Facades\Schema; - -return new class extends Migration -{ - public function up(): void - { - Schema::table('penghuni', function (Blueprint $table) { - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - }); - } - - public function down(): void - { - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); - } -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213338.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213338.php deleted file mode 100644 index 0ea24c7..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213338.php +++ /dev/null @@ -1,29 +0,0 @@ -foreignId('rumah_id') - // ->nullable() - // ->constrained('rumah') - // ->onDelete('set null'); - }); -} - -public function down(): void -{ - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213346.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213346.php deleted file mode 100644 index 8031550..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213346.php +++ /dev/null @@ -1,26 +0,0 @@ -foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - }); - } - - public function down(): void - { - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); - } -}; diff --git a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213631.php b/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213631.php deleted file mode 100644 index d367f14..0000000 --- a/.history/database/migrations/2026_03_30_140043_add_rumah_id_to_penghuni_table_20260330213631.php +++ /dev/null @@ -1,26 +0,0 @@ -foreignId('rumah_id') - // ->nullable() - // ->constrained('rumah') - // ->onDelete('set null'); - }); - } - - public function down(): void - { - Schema::table('penghuni', function (Blueprint $table) { - $table->dropForeign(['rumah_id']); - $table->dropColumn('rumah_id'); - }); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212659.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212659.php deleted file mode 100644 index 6c820de..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212659.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212715.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212715.php deleted file mode 100644 index def02fb..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330212715.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213732.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213732.php deleted file mode 100644 index ec03271..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213732.php +++ /dev/null @@ -1,60 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213904.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213904.php deleted file mode 100644 index ec03271..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213904.php +++ /dev/null @@ -1,60 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213906.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213906.php deleted file mode 100644 index ec03271..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213906.php +++ /dev/null @@ -1,60 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); - - // ========================= - // TABEL PENGHUNI - // ========================= - Schema::create('penghuni', function (Blueprint $table) { - $table->id(); - $table->string('nama', 100); - $table->string('no_ktp', 20)->unique(); - $table->string('email', 100)->unique(); - $table->string('telepon', 20)->nullable(); - $table->string('alamat', 150); - - // ❌ HAPUS INI (sudah tidak dipakai) - // $table->string('blok_rumah', 10)->nullable(); - // $table->string('no_rumah', 10)->nullable(); - - // 🔥 TAMBAHAN RELASI - $table->foreignId('rumah_id') - ->nullable() - ->constrained('rumah') - ->onDelete('set null'); - - $table->enum('status', ['Aktif', 'Tidak Aktif'])->default('Aktif'); - $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); - $table->date('tanggal_masuk')->nullable(); - $table->date('tanggal_keluar')->nullable(); - $table->timestamps(); - }); - } - - public function down(): void - { - Schema::dropIfExists('penghuni'); - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213908.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213908.php deleted file mode 100644 index def02fb..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330213908.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); - }); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330214540.php b/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330214540.php deleted file mode 100644 index eeaacbc..0000000 --- a/.history/database/migrations/2026_03_30_142700_create_rumah_table_20260330214540.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->string('blok'); - $table->string('no_rumah'); - $table->enum('status', ['Kosong', 'Terisi'])->default('Kosong'); - $table->integer('luas_tanah')->nullable(); - $table->bigInteger('harga')->nullable(); - $table->string('gambar')->nullable(); - $table->text('keterangan')->nullable(); - $table->timestamps(); -}); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('rumah'); - } -}; diff --git a/.history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084145.php b/.history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084145.php deleted file mode 100644 index 7f91b73..0000000 --- a/.history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084145.php +++ /dev/null @@ -1,28 +0,0 @@ -string('denah')->nullable(); // gambar denah - }); -} - -public function down(): void -{ - Schema::table('rumah', function (Blueprint $table) { - $table->dropColumn('denah'); - }); -} -}; diff --git a/.history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084218.php b/.history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084218.php deleted file mode 100644 index 08b048c..0000000 --- a/.history/database/migrations/2026_03_31_014146_add_denah_to_rumah_table_20260331084218.php +++ /dev/null @@ -1,25 +0,0 @@ -string('denah')->nullable(); // gambar denah - }); - } - - public function down(): void - { - Schema::table('rumah', function (Blueprint $table) { - $table->dropColumn('denah'); - }); - } -}; diff --git a/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401154938.php b/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401154938.php deleted file mode 100644 index 5773e07..0000000 --- a/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401154938.php +++ /dev/null @@ -1,28 +0,0 @@ -string('photo')->nullable(); -}); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('users', function (Blueprint $table) { - // - }); - } -}; diff --git a/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155005.php b/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155005.php deleted file mode 100644 index d6229f1..0000000 --- a/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155005.php +++ /dev/null @@ -1,28 +0,0 @@ -string('photo')->nullable(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('users', function (Blueprint $table) { - // - }); - } -}; diff --git a/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155007.php b/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155007.php deleted file mode 100644 index 5773e07..0000000 --- a/.history/database/migrations/2026_04_01_084939_add_photo_to_users_table_20260401155007.php +++ /dev/null @@ -1,28 +0,0 @@ -string('photo')->nullable(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('users', function (Blueprint $table) { - // - }); - } -}; diff --git a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202355.php b/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202355.php deleted file mode 100644 index 8450d6c..0000000 --- a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202355.php +++ /dev/null @@ -1,27 +0,0 @@ -id(); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('informasi'); - } -}; diff --git a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202835.php b/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202835.php deleted file mode 100644 index d75eb82..0000000 --- a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202835.php +++ /dev/null @@ -1,41 +0,0 @@ -id(); - - $table->string('judul'); - $table->text('isi'); - - $table->date('tanggal'); - - $table->string('kategori')->default('Umum'); - $table->string('penulis')->nullable(); - - $table->string('gambar')->nullable(); - - $table->boolean('is_penting')->default(false); - $table->integer('views')->default(0); - - $table->timestamps(); - }); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('informasi'); - } -}; diff --git a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202836.php b/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202836.php deleted file mode 100644 index d75eb82..0000000 --- a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202836.php +++ /dev/null @@ -1,41 +0,0 @@ -id(); - - $table->string('judul'); - $table->text('isi'); - - $table->date('tanggal'); - - $table->string('kategori')->default('Umum'); - $table->string('penulis')->nullable(); - - $table->string('gambar')->nullable(); - - $table->boolean('is_penting')->default(false); - $table->integer('views')->default(0); - - $table->timestamps(); - }); -} - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('informasi'); - } -}; diff --git a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202841.php b/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202841.php deleted file mode 100644 index efc8fd9..0000000 --- a/.history/database/migrations/2026_04_14_202356_create_informasi_table_20260414202841.php +++ /dev/null @@ -1,41 +0,0 @@ -id(); - - $table->string('judul'); - $table->text('isi'); - - $table->date('tanggal'); - - $table->string('kategori')->default('Umum'); - $table->string('penulis')->nullable(); - - $table->string('gambar')->nullable(); - - $table->boolean('is_penting')->default(false); - $table->integer('views')->default(0); - - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('informasi'); - } -}; diff --git a/.history/resources/views/admin/informasi/create.blade_20260414203935.php b/.history/resources/views/admin/informasi/create.blade_20260414203935.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/informasi/create.blade_20260414204046.php b/.history/resources/views/admin/informasi/create.blade_20260414204046.php deleted file mode 100644 index 8736562..0000000 --- a/.history/resources/views/admin/informasi/create.blade_20260414204046.php +++ /dev/null @@ -1,25 +0,0 @@ -
-@csrf - - - - - - - - - - - - - - - -
diff --git a/.history/resources/views/admin/informasi/create.blade_20260414204055.php b/.history/resources/views/admin/informasi/create.blade_20260414204055.php deleted file mode 100644 index 68f2b7b..0000000 --- a/.history/resources/views/admin/informasi/create.blade_20260414204055.php +++ /dev/null @@ -1,36 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Tambah Informasi

- -
- @csrf - - - - - - - - - - - - - - - Kembali - -
- -
-@endsection diff --git a/.history/resources/views/admin/informasi/edit.blade_20260414203946.php b/.history/resources/views/admin/informasi/edit.blade_20260414203946.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/informasi/edit.blade_20260414204006.php b/.history/resources/views/admin/informasi/edit.blade_20260414204006.php deleted file mode 100644 index 68f2b7b..0000000 --- a/.history/resources/views/admin/informasi/edit.blade_20260414204006.php +++ /dev/null @@ -1,36 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Tambah Informasi

- -
- @csrf - - - - - - - - - - - - - - - Kembali - -
- -
-@endsection diff --git a/.history/resources/views/admin/informasi/edit.blade_20260414204033.php b/.history/resources/views/admin/informasi/edit.blade_20260414204033.php deleted file mode 100644 index 789ecfe..0000000 --- a/.history/resources/views/admin/informasi/edit.blade_20260414204033.php +++ /dev/null @@ -1,38 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Edit Informasi

- -
- @csrf - @method('PUT') - - - - - - - - - - - - - - - Kembali - -
- -
-@endsection diff --git a/.history/resources/views/admin/informasi/edit.blade_20260414204105.php b/.history/resources/views/admin/informasi/edit.blade_20260414204105.php deleted file mode 100644 index 789ecfe..0000000 --- a/.history/resources/views/admin/informasi/edit.blade_20260414204105.php +++ /dev/null @@ -1,38 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Edit Informasi

- -
- @csrf - @method('PUT') - - - - - - - - - - - - - - - Kembali - -
- -
-@endsection diff --git a/.history/resources/views/admin/informasi/index.blade_20260401135926.php b/.history/resources/views/admin/informasi/index.blade_20260401135926.php deleted file mode 100644 index edb0469..0000000 --- a/.history/resources/views/admin/informasi/index.blade_20260401135926.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Informasi

- - - + Tambah Informasi - - - - - - - - - - - - - - - - - -
JudulTanggalAksi
Contoh Informasi2026-01-01 - - -
-
-@endsection diff --git a/.history/resources/views/admin/informasi/index.blade_20260414203919.php b/.history/resources/views/admin/informasi/index.blade_20260414203919.php deleted file mode 100644 index 8736562..0000000 --- a/.history/resources/views/admin/informasi/index.blade_20260414203919.php +++ /dev/null @@ -1,25 +0,0 @@ -
-@csrf - - - - - - - - - - - - - - - -
diff --git a/.history/resources/views/admin/informasi/index.blade_20260414203923.php b/.history/resources/views/admin/informasi/index.blade_20260414203923.php deleted file mode 100644 index edb0469..0000000 --- a/.history/resources/views/admin/informasi/index.blade_20260414203923.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Informasi

- - - + Tambah Informasi - - - - - - - - - - - - - - - - - -
JudulTanggalAksi
Contoh Informasi2026-01-01 - - -
-
-@endsection diff --git a/.history/resources/views/admin/informasi/index.blade_20260414203927.php b/.history/resources/views/admin/informasi/index.blade_20260414203927.php deleted file mode 100644 index 1cda8e1..0000000 --- a/.history/resources/views/admin/informasi/index.blade_20260414203927.php +++ /dev/null @@ -1,68 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Informasi

- - @if(session('success')) -
{{ session('success') }}
- @endif - - - + Tambah Informasi - - - - - - - - - - - - - - - - @forelse($informasi as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
JudulKategoriPentingViewsTanggalAksi
{{ $i->judul }}{{ $i->kategori }} - @if($i->is_penting) - Penting - @else - - - @endif - {{ $i->views }}{{ $i->tanggal }} - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data
- -
-@endsection diff --git a/.history/resources/views/admin/infromasi/index.blade_20260401135923.php b/.history/resources/views/admin/infromasi/index.blade_20260401135923.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/infromasi/index.blade_20260401135927.php b/.history/resources/views/admin/infromasi/index.blade_20260401135927.php deleted file mode 100644 index edb0469..0000000 --- a/.history/resources/views/admin/infromasi/index.blade_20260401135927.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Informasi

- - - + Tambah Informasi - - - - - - - - - - - - - - - - - -
JudulTanggalAksi
Contoh Informasi2026-01-01 - - -
-
-@endsection diff --git a/.history/resources/views/admin/iuran/create.blade_20260401230224.php b/.history/resources/views/admin/iuran/create.blade_20260401230224.php deleted file mode 100644 index 33aba73..0000000 --- a/.history/resources/views/admin/iuran/create.blade_20260401230224.php +++ /dev/null @@ -1,78 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Tambah Iuran

- Kembali - -
- @csrf - - {{-- NAMA PENGHUNI --}} -
- - -
- - {{-- BULAN --}} -
- - -
- - {{-- TAHUN --}} -
- - -
- - {{-- JUMLAH --}} -
- - -
- - {{-- 🔥 JENIS IURAN --}} -
- - -
- - {{-- 🔥 KETERANGAN --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- TANGGAL BAYAR --}} -
- - -
- - -
-
-@endsection diff --git a/.history/resources/views/admin/iuran/create.blade_20260401235837.php b/.history/resources/views/admin/iuran/create.blade_20260401235837.php deleted file mode 100644 index bda3a68..0000000 --- a/.history/resources/views/admin/iuran/create.blade_20260401235837.php +++ /dev/null @@ -1,78 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Tambah Iuran

- Kembali - -
- @csrf - - {{-- NAMA PENGHUNI --}} -
- - -
- - {{-- BULAN --}} -
- - -
- - {{-- TAHUN --}} -
- - -
- - {{-- JUMLAH --}} -
- - -
- - {{-- 🔥 JENIS IURAN --}} -
- - -
- - {{-- 🔥 KETERANGAN --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - TANGGAL BAYAR -
- - -
- - -
-
-@endsection diff --git a/.history/resources/views/admin/iuran/create.blade_20260401235838.php b/.history/resources/views/admin/iuran/create.blade_20260401235838.php deleted file mode 100644 index 478b929..0000000 --- a/.history/resources/views/admin/iuran/create.blade_20260401235838.php +++ /dev/null @@ -1,78 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Tambah Iuran

- Kembali - -
- @csrf - - {{-- NAMA PENGHUNI --}} -
- - -
- - {{-- BULAN --}} -
- - -
- - {{-- TAHUN --}} -
- - -
- - {{-- JUMLAH --}} -
- - -
- - {{-- 🔥 JENIS IURAN --}} -
- - -
- - {{-- 🔥 KETERANGAN --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- TANGGAL BAYAR -
- - -
--}} - - -
-
-@endsection diff --git a/.history/resources/views/admin/iuran/edit.blade_20260401235410.php b/.history/resources/views/admin/iuran/edit.blade_20260401235410.php deleted file mode 100644 index d3b3e4f..0000000 --- a/.history/resources/views/admin/iuran/edit.blade_20260401235410.php +++ /dev/null @@ -1,80 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Iuran

- Kembali - -
- @csrf - @method('PUT') - - {{-- NAMA PENGHUNI --}} -
- - -
- - {{-- BULAN --}} -
- - -
- - {{-- TAHUN --}} -
- - -
- - {{-- JUMLAH --}} -
- - -
- - {{-- 🔥 JENIS IURAN --}} -
- - -
- - {{-- 🔥 KETERANGAN --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- TANGGAL BAYAR --}} -
- - -
- - -
-
-@endsection diff --git a/.history/resources/views/admin/iuran/edit.blade_20260401235855.php b/.history/resources/views/admin/iuran/edit.blade_20260401235855.php deleted file mode 100644 index 75f2268..0000000 --- a/.history/resources/views/admin/iuran/edit.blade_20260401235855.php +++ /dev/null @@ -1,80 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Iuran

- Kembali - -
- @csrf - @method('PUT') - - {{-- NAMA PENGHUNI --}} -
- - -
- - {{-- BULAN --}} -
- - -
- - {{-- TAHUN --}} -
- - -
- - {{-- JUMLAH --}} -
- - -
- - {{-- 🔥 JENIS IURAN --}} -
- - -
- - {{-- 🔥 KETERANGAN --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- TANGGAL BAYAR --}} - {{--
- - -
--}} - - -
-
-@endsection diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230616.php b/.history/resources/views/admin/iuran/index.blade_20260401230616.php deleted file mode 100644 index b312cb5..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230616.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230620.php b/.history/resources/views/admin/iuran/index.blade_20260401230620.php deleted file mode 100644 index 70bd812..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230620.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230706.php b/.history/resources/views/admin/iuran/index.blade_20260401230706.php deleted file mode 100644 index a66c795..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230706.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230711.php b/.history/resources/views/admin/iuran/index.blade_20260401230711.php deleted file mode 100644 index 3bc7c8b..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230711.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230714.php b/.history/resources/views/admin/iuran/index.blade_20260401230714.php deleted file mode 100644 index fd682ad..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230714.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230730.php b/.history/resources/views/admin/iuran/index.blade_20260401230730.php deleted file mode 100644 index b5ef8da..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230730.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230731.php b/.history/resources/views/admin/iuran/index.blade_20260401230731.php deleted file mode 100644 index f8395ca..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230731.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230736.php b/.history/resources/views/admin/iuran/index.blade_20260401230736.php deleted file mode 100644 index 09d2963..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230736.php +++ /dev/null @@ -1,101 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230738.php b/.history/resources/views/admin/iuran/index.blade_20260401230738.php deleted file mode 100644 index a66c795..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230738.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230741.php b/.history/resources/views/admin/iuran/index.blade_20260401230741.php deleted file mode 100644 index 6bbdf31..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230741.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401230742.php b/.history/resources/views/admin/iuran/index.blade_20260401230742.php deleted file mode 100644 index fd682ad..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401230742.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401231003.php b/.history/resources/views/admin/iuran/index.blade_20260401231003.php deleted file mode 100644 index ab545e5..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401231003.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $item->jenis_iuran }}{{ $item->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401232546.php b/.history/resources/views/admin/iuran/index.blade_20260401232546.php deleted file mode 100644 index 0164dd4..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401232546.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401232550.php b/.history/resources/views/admin/iuran/index.blade_20260401232550.php deleted file mode 100644 index 11dff44..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401232550.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401232552.php b/.history/resources/views/admin/iuran/index.blade_20260401232552.php deleted file mode 100644 index 50f4d51..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401232552.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->nama }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401232622.php b/.history/resources/views/admin/iuran/index.blade_20260401232622.php deleted file mode 100644 index 4c092c9..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401232622.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401233123.php b/.history/resources/views/admin/iuran/index.blade_20260401233123.php deleted file mode 100644 index 87c03da..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401233123.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401233434.php b/.history/resources/views/admin/iuran/index.blade_20260401233434.php deleted file mode 100644 index 488febb..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401233434.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260401233438.php b/.history/resources/views/admin/iuran/index.blade_20260401233438.php deleted file mode 100644 index 58ccab4..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260401233438.php +++ /dev/null @@ -1,102 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - {{ $i->tanggal_bayar ?? '-' }} - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260402000221.php b/.history/resources/views/admin/iuran/index.blade_20260402000221.php deleted file mode 100644 index 4cb67ed..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260402000221.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d F Y H:i') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260402000227.php b/.history/resources/views/admin/iuran/index.blade_20260402000227.php deleted file mode 100644 index 9fe57c4..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260402000227.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d F Y H:i') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260402001001.php b/.history/resources/views/admin/iuran/index.blade_20260402001001.php deleted file mode 100644 index 93bc934..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260402001001.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->format()('d F Y H:i') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260402001051.php b/.history/resources/views/admin/iuran/index.blade_20260402001051.php deleted file mode 100644 index 5afdb60..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260402001051.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260402001114.php b/.history/resources/views/admin/iuran/index.blade_20260402001114.php deleted file mode 100644 index 9fe57c4..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260402001114.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d F Y H:i') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260402001128.php b/.history/resources/views/admin/iuran/index.blade_20260402001128.php deleted file mode 100644 index 5afdb60..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260402001128.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408171342.php b/.history/resources/views/admin/iuran/index.blade_20260408171342.php deleted file mode 100644 index 49dbf1d..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408171342.php +++ /dev/null @@ -1,114 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408171347.php b/.history/resources/views/admin/iuran/index.blade_20260408171347.php deleted file mode 100644 index dc64156..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408171347.php +++ /dev/null @@ -1,114 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408171352.php b/.history/resources/views/admin/iuran/index.blade_20260408171352.php deleted file mode 100644 index 5afdb60..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408171352.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408171354.php b/.history/resources/views/admin/iuran/index.blade_20260408171354.php deleted file mode 100644 index 9ef06a8..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408171354.php +++ /dev/null @@ -1,108 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408171356.php b/.history/resources/views/admin/iuran/index.blade_20260408171356.php deleted file mode 100644 index 49dbf1d..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408171356.php +++ /dev/null @@ -1,114 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408171402.php b/.history/resources/views/admin/iuran/index.blade_20260408171402.php deleted file mode 100644 index dc64156..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408171402.php +++ /dev/null @@ -1,114 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408172245.php b/.history/resources/views/admin/iuran/index.blade_20260408172245.php deleted file mode 100644 index da4add4..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408172245.php +++ /dev/null @@ -1,115 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408172252.php b/.history/resources/views/admin/iuran/index.blade_20260408172252.php deleted file mode 100644 index cdaa5c8..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408172252.php +++ /dev/null @@ -1,115 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @else - Belum Lunas - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408172340.php b/.history/resources/views/admin/iuran/index.blade_20260408172340.php deleted file mode 100644 index 069e894..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408172340.php +++ /dev/null @@ -1,141 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408172353.php b/.history/resources/views/admin/iuran/index.blade_20260408172353.php deleted file mode 100644 index 6e2ee6f..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408172353.php +++ /dev/null @@ -1,141 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/iuran/index.blade_20260408183206.php b/.history/resources/views/admin/iuran/index.blade_20260408183206.php deleted file mode 100644 index d3616e5..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408183206.php +++ /dev/null @@ -1,185 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408183501.php b/.history/resources/views/admin/iuran/index.blade_20260408183501.php deleted file mode 100644 index 6e5b7a5..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408183501.php +++ /dev/null @@ -1,185 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408183503.php b/.history/resources/views/admin/iuran/index.blade_20260408183503.php deleted file mode 100644 index 2a3de6c..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408183503.php +++ /dev/null @@ -1,185 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408183507.php b/.history/resources/views/admin/iuran/index.blade_20260408183507.php deleted file mode 100644 index 7024cf4..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408183507.php +++ /dev/null @@ -1,185 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408184401.php b/.history/resources/views/admin/iuran/index.blade_20260408184401.php deleted file mode 100644 index 1655473..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408184401.php +++ /dev/null @@ -1,252 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408184617.php b/.history/resources/views/admin/iuran/index.blade_20260408184617.php deleted file mode 100644 index c9f190b..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408184617.php +++ /dev/null @@ -1,252 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408185037.php b/.history/resources/views/admin/iuran/index.blade_20260408185037.php deleted file mode 100644 index 11b4a75..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408185037.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408185719.php b/.history/resources/views/admin/iuran/index.blade_20260408185719.php deleted file mode 100644 index fa14a30..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408185719.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408185723.php b/.history/resources/views/admin/iuran/index.blade_20260408185723.php deleted file mode 100644 index 966c0ab..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408185723.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @else - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408190722.php b/.history/resources/views/admin/iuran/index.blade_20260408190722.php deleted file mode 100644 index c1b8b58..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408190722.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - -@endif - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408190726.php b/.history/resources/views/admin/iuran/index.blade_20260408190726.php deleted file mode 100644 index 20fbcd6..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408190726.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408190804.php b/.history/resources/views/admin/iuran/index.blade_20260408190804.php deleted file mode 100644 index b77dcd1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408190804.php +++ /dev/null @@ -1,251 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408215115.php b/.history/resources/views/admin/iuran/index.blade_20260408215115.php deleted file mode 100644 index 8805ad7..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408215115.php +++ /dev/null @@ -1,255 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260408215130.php b/.history/resources/views/admin/iuran/index.blade_20260408215130.php deleted file mode 100644 index b77dcd1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260408215130.php +++ /dev/null @@ -1,251 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260409101700.php b/.history/resources/views/admin/iuran/index.blade_20260409101700.php deleted file mode 100644 index 9d9244e..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260409101700.php +++ /dev/null @@ -1,257 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - - -@if(session('wa_url')) - -@endif diff --git a/.history/resources/views/admin/iuran/index.blade_20260409102024.php b/.history/resources/views/admin/iuran/index.blade_20260409102024.php deleted file mode 100644 index ef250ad..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260409102024.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260409102038.php b/.history/resources/views/admin/iuran/index.blade_20260409102038.php deleted file mode 100644 index 9b5565d..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260409102038.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- -@if(session('wa_url')) - -@endif -@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103437.php b/.history/resources/views/admin/iuran/index.blade_20260416103437.php deleted file mode 100644 index 2a40298..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103437.php +++ /dev/null @@ -1,267 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - \ No newline at end of file diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103522.php b/.history/resources/views/admin/iuran/index.blade_20260416103522.php deleted file mode 100644 index f59eba1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103522.php +++ /dev/null @@ -1,274 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - @if(auth()->user()->role == 'admin' && $l->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103523.php b/.history/resources/views/admin/iuran/index.blade_20260416103523.php deleted file mode 100644 index f59eba1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103523.php +++ /dev/null @@ -1,274 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - @if(auth()->user()->role == 'admin' && $l->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103524.php b/.history/resources/views/admin/iuran/index.blade_20260416103524.php deleted file mode 100644 index f59eba1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103524.php +++ /dev/null @@ -1,274 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - @if(auth()->user()->role == 'admin' && $l->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103525.php b/.history/resources/views/admin/iuran/index.blade_20260416103525.php deleted file mode 100644 index f59eba1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103525.php +++ /dev/null @@ -1,274 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - @if(auth()->user()->role == 'admin' && $l->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103526.php b/.history/resources/views/admin/iuran/index.blade_20260416103526.php deleted file mode 100644 index f59eba1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103526.php +++ /dev/null @@ -1,274 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - @if(auth()->user()->role == 'admin' && $l->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103534.php b/.history/resources/views/admin/iuran/index.blade_20260416103534.php deleted file mode 100644 index 571a3bc..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103534.php +++ /dev/null @@ -1,269 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103535.php b/.history/resources/views/admin/iuran/index.blade_20260416103535.php deleted file mode 100644 index f59eba1..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103535.php +++ /dev/null @@ -1,274 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $l->status == 'diajukan') -
- @csrf - - -
- @endif - - @if(auth()->user()->role == 'admin' && $l->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103604.php b/.history/resources/views/admin/iuran/index.blade_20260416103604.php deleted file mode 100644 index 0226946..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103604.php +++ /dev/null @@ -1,261 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- -@if(session('wa_url')) - -@endif -@endsection - -@push('scripts') - -@endpush - -{{-- --}} - - - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103631.php b/.history/resources/views/admin/iuran/index.blade_20260416103631.php deleted file mode 100644 index 426783a..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103631.php +++ /dev/null @@ -1,266 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $i->status == 'belum' && $i->bukti_pembayaran) -
- @csrf - -
- @endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - \ No newline at end of file diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103638.php b/.history/resources/views/admin/iuran/index.blade_20260416103638.php deleted file mode 100644 index 436ec87..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103638.php +++ /dev/null @@ -1,273 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $i->status == 'belum' && $i->bukti_pembayaran) -
- @csrf - -
- @endif - - @if(auth()->user()->role == 'admin' && $i->status == 'proses') -
- @csrf - -
-@endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416103647.php b/.history/resources/views/admin/iuran/index.blade_20260416103647.php deleted file mode 100644 index 0e223fc..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416103647.php +++ /dev/null @@ -1,273 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $i->status == 'belum' && $i->bukti_pembayaran) -
- @csrf - -
- @endif - - @if(auth()->user()->role == 'admin' && $i->status == 'proses') -
- @csrf - -
- @endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260416164838.php b/.history/resources/views/admin/iuran/index.blade_20260416164838.php deleted file mode 100644 index 5b8c6aa..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260416164838.php +++ /dev/null @@ -1,273 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- {{-- - Tambah Iuran - --}} -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $i->status == 'belum' && $i->bukti_pembayaran) -
- @csrf - -
- @endif - - @if(auth()->user()->role == 'admin' && $i->status == 'proses') -
- @csrf - -
- @endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/iuran/index.blade_20260417143850.php b/.history/resources/views/admin/iuran/index.blade_20260417143850.php deleted file mode 100644 index 0e223fc..0000000 --- a/.history/resources/views/admin/iuran/index.blade_20260417143850.php +++ /dev/null @@ -1,273 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Iuran

- - @if(session('success')) - - @endif - -
-
-
Daftar Iuran
- - Tambah Iuran - -
-
-
- - - - - - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - {{-- STATUS --}} - - - {{-- TANGGAL --}} - - - {{-- BUKTI --}} - - - {{-- AKSI --}} - - - @empty - - - - @endforelse - -
IDNama PenghuniBulanTahunJumlahJenis IuranKeteranganStatusTanggal BayarBuktiAksi
{{ $loop->iteration }}{{ $i->penghuni->nama ?? '-' }}{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah, 0, ',', '.') }}{{ $i->jenis_iuran }}{{ $i->keterangan ?? '-' }} - @if ($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' - }} - - @if($i->bukti_pembayaran) - - @endif - - - @if(auth()->user()->role == 'rt' && $i->status == 'belum' && $i->bukti_pembayaran) -
- @csrf - -
- @endif - - @if(auth()->user()->role == 'admin' && $i->status == 'proses') -
- @csrf - -
- @endif - - {{-- 🔥 APPROVE --}} - @if($i->bukti_pembayaran && $i->status == 'belum') -
- @csrf - -
- @endif - - {{-- EDIT --}} - - Edit - - - {{-- DELETE --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data iuran
-
-
-
-
- - @if(session('wa_url')) - - @endif -@endsection - -@push('scripts') - -@endpush - -{{-- - --}} - - diff --git a/.history/resources/views/admin/laporan/index.blade_20260401140242.php b/.history/resources/views/admin/laporan/index.blade_20260401140242.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/laporan/index.blade_20260401140250.php b/.history/resources/views/admin/laporan/index.blade_20260401140250.php deleted file mode 100644 index f41bc27..0000000 --- a/.history/resources/views/admin/laporan/index.blade_20260401140250.php +++ /dev/null @@ -1,21 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Cetak Laporan

- -
-
- - -
- - -
-
-@endsection diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193909.php b/.history/resources/views/admin/layanan/index.blade_20260329193909.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193925.php b/.history/resources/views/admin/layanan/index.blade_20260329193925.php deleted file mode 100644 index 59c227c..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329193925.php +++ /dev/null @@ -1 +0,0 @@ -@ diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193930.php b/.history/resources/views/admin/layanan/index.blade_20260329193930.php deleted file mode 100644 index b90c36b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329193930.php +++ /dev/null @@ -1 +0,0 @@ -@extends() diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193942.php b/.history/resources/views/admin/layanan/index.blade_20260329193942.php deleted file mode 100644 index fd4f4b3..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329193942.php +++ /dev/null @@ -1 +0,0 @@ -@extends('') diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193944.php b/.history/resources/views/admin/layanan/index.blade_20260329193944.php deleted file mode 100644 index 56ca1b6..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329193944.php +++ /dev/null @@ -1 +0,0 @@ -@extends('lay') diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193947.php b/.history/resources/views/admin/layanan/index.blade_20260329193947.php deleted file mode 100644 index d8ed3af..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329193947.php +++ /dev/null @@ -1 +0,0 @@ -@extends('layouts.app' diff --git a/.history/resources/views/admin/layanan/index.blade_20260329193952.php b/.history/resources/views/admin/layanan/index.blade_20260329193952.php deleted file mode 100644 index f16b07f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329193952.php +++ /dev/null @@ -1 +0,0 @@ -@extends('layouts.app') diff --git a/.history/resources/views/admin/layanan/index.blade_20260329194000.php b/.history/resources/views/admin/layanan/index.blade_20260329194000.php deleted file mode 100644 index e9c55d1..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329194000.php +++ /dev/null @@ -1,3 +0,0 @@ -@extends('layouts.app') - -@ diff --git a/.history/resources/views/admin/layanan/index.blade_20260329194002.php b/.history/resources/views/admin/layanan/index.blade_20260329194002.php deleted file mode 100644 index 9e98bcc..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329194002.php +++ /dev/null @@ -1,3 +0,0 @@ -@extends('layouts.app') - -@section() diff --git a/.history/resources/views/admin/layanan/index.blade_20260329194003.php b/.history/resources/views/admin/layanan/index.blade_20260329194003.php deleted file mode 100644 index a140c5d..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329194003.php +++ /dev/null @@ -1,3 +0,0 @@ -@extends('layouts.app') - -@section('') diff --git a/.history/resources/views/admin/layanan/index.blade_20260329194005.php b/.history/resources/views/admin/layanan/index.blade_20260329194005.php deleted file mode 100644 index 9586457..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329194005.php +++ /dev/null @@ -1,3 +0,0 @@ -@extends('layouts.app') - -@section('content') diff --git a/.history/resources/views/admin/layanan/index.blade_20260329194026.php b/.history/resources/views/admin/layanan/index.blade_20260329194026.php deleted file mode 100644 index fba286c..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329194026.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') - -@section('content') -@endsection diff --git a/.history/resources/views/admin/layanan/index.blade_20260329194029.php b/.history/resources/views/admin/layanan/index.blade_20260329194029.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329194029.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/admin/layanan/index.blade_20260329201345.php b/.history/resources/views/admin/layanan/index.blade_20260329201345.php deleted file mode 100644 index 20cb92b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260329201345.php +++ /dev/null @@ -1,157 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141159.php b/.history/resources/views/admin/layanan/index.blade_20260410141159.php deleted file mode 100644 index cd34d5b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141159.php +++ /dev/null @@ -1,158 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141202.php b/.history/resources/views/admin/layanan/index.blade_20260410141202.php deleted file mode 100644 index 0b4c654..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141202.php +++ /dev/null @@ -1,158 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141217.php b/.history/resources/views/admin/layanan/index.blade_20260410141217.php deleted file mode 100644 index 2d8a00b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141217.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} -@if($item->foto) - -@else -- -@endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141222.php b/.history/resources/views/admin/layanan/index.blade_20260410141222.php deleted file mode 100644 index 2b33fa9..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141222.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141226.php b/.history/resources/views/admin/layanan/index.blade_20260410141226.php deleted file mode 100644 index 762eba6..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141226.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141229.php b/.history/resources/views/admin/layanan/index.blade_20260410141229.php deleted file mode 100644 index 2c9e911..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141229.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260410141231.php b/.history/resources/views/admin/layanan/index.blade_20260410141231.php deleted file mode 100644 index 7c196f7..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260410141231.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214138.php b/.history/resources/views/admin/layanan/index.blade_20260413214138.php deleted file mode 100644 index 4d0ec8a..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214138.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214140.php b/.history/resources/views/admin/layanan/index.blade_20260413214140.php deleted file mode 100644 index 7c196f7..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214140.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214143.php b/.history/resources/views/admin/layanan/index.blade_20260413214143.php deleted file mode 100644 index 4d0ec8a..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214143.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214145.php b/.history/resources/views/admin/layanan/index.blade_20260413214145.php deleted file mode 100644 index 4d0ec8a..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214145.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214149.php b/.history/resources/views/admin/layanan/index.blade_20260413214149.php deleted file mode 100644 index 7c196f7..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214149.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214308.php b/.history/resources/views/admin/layanan/index.blade_20260413214308.php deleted file mode 100644 index 1c39f16..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214308.php +++ /dev/null @@ -1,168 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - {{-- 🔥 MODAL DI LUAR TABLE --}} - @foreach($layanan as $item) - - @endforeach - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214757.php b/.history/resources/views/admin/layanan/index.blade_20260413214757.php deleted file mode 100644 index 63eb906..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214757.php +++ /dev/null @@ -1,170 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - {{-- 🔥 MODAL DI LUAR TABLE --}} - @foreach($layanan as $item) - - @endforeach - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214803.php b/.history/resources/views/admin/layanan/index.blade_20260413214803.php deleted file mode 100644 index 7b0d98f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214803.php +++ /dev/null @@ -1,170 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - {{-- 🔥 MODAL DI LUAR TABLE --}} - @foreach($layanan as $item) - - @endforeach - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214814.php b/.history/resources/views/admin/layanan/index.blade_20260413214814.php deleted file mode 100644 index c74d1f0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214814.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214835.php b/.history/resources/views/admin/layanan/index.blade_20260413214835.php deleted file mode 100644 index 36ca3f8..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214835.php +++ /dev/null @@ -1,168 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214837.php b/.history/resources/views/admin/layanan/index.blade_20260413214837.php deleted file mode 100644 index f11b3ae..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214837.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214840.php b/.history/resources/views/admin/layanan/index.blade_20260413214840.php deleted file mode 100644 index 36ca3f8..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214840.php +++ /dev/null @@ -1,168 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413214841.php b/.history/resources/views/admin/layanan/index.blade_20260413214841.php deleted file mode 100644 index 188ae45..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413214841.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215101.php b/.history/resources/views/admin/layanan/index.blade_20260413215101.php deleted file mode 100644 index 0edada2..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215101.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215340.php b/.history/resources/views/admin/layanan/index.blade_20260413215340.php deleted file mode 100644 index 12acd67..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215340.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215342.php b/.history/resources/views/admin/layanan/index.blade_20260413215342.php deleted file mode 100644 index 36b5d3f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215342.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215350.php b/.history/resources/views/admin/layanan/index.blade_20260413215350.php deleted file mode 100644 index 5619665..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215350.php +++ /dev/null @@ -1,183 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215351.php b/.history/resources/views/admin/layanan/index.blade_20260413215351.php deleted file mode 100644 index 5075db4..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215351.php +++ /dev/null @@ -1,183 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215408.php b/.history/resources/views/admin/layanan/index.blade_20260413215408.php deleted file mode 100644 index b71ac2a..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215408.php +++ /dev/null @@ -1,184 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215412.php b/.history/resources/views/admin/layanan/index.blade_20260413215412.php deleted file mode 100644 index 09e421f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215412.php +++ /dev/null @@ -1,192 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215413.php b/.history/resources/views/admin/layanan/index.blade_20260413215413.php deleted file mode 100644 index 166e5e8..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215413.php +++ /dev/null @@ -1,192 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215420.php b/.history/resources/views/admin/layanan/index.blade_20260413215420.php deleted file mode 100644 index 455f472..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215420.php +++ /dev/null @@ -1,183 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215421.php b/.history/resources/views/admin/layanan/index.blade_20260413215421.php deleted file mode 100644 index ca29282..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215421.php +++ /dev/null @@ -1,184 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215423.php b/.history/resources/views/admin/layanan/index.blade_20260413215423.php deleted file mode 100644 index 3f627c8..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215423.php +++ /dev/null @@ -1,193 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - }); - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215427.php b/.history/resources/views/admin/layanan/index.blade_20260413215427.php deleted file mode 100644 index 1de3265..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215427.php +++ /dev/null @@ -1,185 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215433.php b/.history/resources/views/admin/layanan/index.blade_20260413215433.php deleted file mode 100644 index d74f25e..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215433.php +++ /dev/null @@ -1,194 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215614.php b/.history/resources/views/admin/layanan/index.blade_20260413215614.php deleted file mode 100644 index 4e0635c..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215614.php +++ /dev/null @@ -1,188 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413215932.php b/.history/resources/views/admin/layanan/index.blade_20260413215932.php deleted file mode 100644 index cf68317..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413215932.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220034.php b/.history/resources/views/admin/layanan/index.blade_20260413220034.php deleted file mode 100644 index 1b1ca06..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220034.php +++ /dev/null @@ -1,175 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220035.php b/.history/resources/views/admin/layanan/index.blade_20260413220035.php deleted file mode 100644 index 1c9ed28..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220035.php +++ /dev/null @@ -1,175 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220157.php b/.history/resources/views/admin/layanan/index.blade_20260413220157.php deleted file mode 100644 index 7e743d4..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220157.php +++ /dev/null @@ -1,175 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220211.php b/.history/resources/views/admin/layanan/index.blade_20260413220211.php deleted file mode 100644 index ff50f39..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220211.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220358.php b/.history/resources/views/admin/layanan/index.blade_20260413220358.php deleted file mode 100644 index b2f9f6b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220358.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220400.php b/.history/resources/views/admin/layanan/index.blade_20260413220400.php deleted file mode 100644 index 7f365b0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220400.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220549.php b/.history/resources/views/admin/layanan/index.blade_20260413220549.php deleted file mode 100644 index dde5e0c..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220549.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220602.php b/.history/resources/views/admin/layanan/index.blade_20260413220602.php deleted file mode 100644 index 3b460b1..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220602.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - -.modal-backdrop { - z-index: 1040 !important; -} - -.modal { - z-index: 1050 !important; -} - -.btn { - position: relative; - z-index: 1; -} diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220603.php b/.history/resources/views/admin/layanan/index.blade_20260413220603.php deleted file mode 100644 index 1384bb0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220603.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - -.modal-backdrop { -z-index: 1040 !important; -} - -.modal { -z-index: 1050 !important; -} - -.btn { -position: relative; -z-index: 1; -} \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220604.php b/.history/resources/views/admin/layanan/index.blade_20260413220604.php deleted file mode 100644 index 1384bb0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220604.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - -.modal-backdrop { -z-index: 1040 !important; -} - -.modal { -z-index: 1050 !important; -} - -.btn { -position: relative; -z-index: 1; -} \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220605.php b/.history/resources/views/admin/layanan/index.blade_20260413220605.php deleted file mode 100644 index 1384bb0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220605.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - -.modal-backdrop { -z-index: 1040 !important; -} - -.modal { -z-index: 1050 !important; -} - -.btn { -position: relative; -z-index: 1; -} \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220606.php b/.history/resources/views/admin/layanan/index.blade_20260413220606.php deleted file mode 100644 index 1384bb0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220606.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - -.modal-backdrop { -z-index: 1040 !important; -} - -.modal { -z-index: 1050 !important; -} - -.btn { -position: relative; -z-index: 1; -} \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220607.php b/.history/resources/views/admin/layanan/index.blade_20260413220607.php deleted file mode 100644 index 1384bb0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220607.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - -.modal-backdrop { -z-index: 1040 !important; -} - -.modal { -z-index: 1050 !important; -} - -.btn { -position: relative; -z-index: 1; -} \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220616.php b/.history/resources/views/admin/layanan/index.blade_20260413220616.php deleted file mode 100644 index a2dad47..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220616.php +++ /dev/null @@ -1,178 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220618.php b/.history/resources/views/admin/layanan/index.blade_20260413220618.php deleted file mode 100644 index 88b5d67..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220618.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220619.php b/.history/resources/views/admin/layanan/index.blade_20260413220619.php deleted file mode 100644 index f9b15fd..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220619.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220722.php b/.history/resources/views/admin/layanan/index.blade_20260413220722.php deleted file mode 100644 index e8eafd0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220722.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413220725.php b/.history/resources/views/admin/layanan/index.blade_20260413220725.php deleted file mode 100644 index fd5981f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413220725.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221049.php b/.history/resources/views/admin/layanan/index.blade_20260413221049.php deleted file mode 100644 index d5fc26b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221049.php +++ /dev/null @@ -1,178 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221050.php b/.history/resources/views/admin/layanan/index.blade_20260413221050.php deleted file mode 100644 index be8ab70..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221050.php +++ /dev/null @@ -1,178 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221053.php b/.history/resources/views/admin/layanan/index.blade_20260413221053.php deleted file mode 100644 index d5fc26b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221053.php +++ /dev/null @@ -1,178 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221105.php b/.history/resources/views/admin/layanan/index.blade_20260413221105.php deleted file mode 100644 index 850a62e..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221105.php +++ /dev/null @@ -1,183 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221325.php b/.history/resources/views/admin/layanan/index.blade_20260413221325.php deleted file mode 100644 index 31d1514..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221325.php +++ /dev/null @@ -1,152 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221329.php b/.history/resources/views/admin/layanan/index.blade_20260413221329.php deleted file mode 100644 index 347a5dc..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221329.php +++ /dev/null @@ -1,185 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - - - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221348.php b/.history/resources/views/admin/layanan/index.blade_20260413221348.php deleted file mode 100644 index 26588d3..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221348.php +++ /dev/null @@ -1,184 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - - - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221400.php b/.history/resources/views/admin/layanan/index.blade_20260413221400.php deleted file mode 100644 index c43016f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221400.php +++ /dev/null @@ -1,188 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221612.php b/.history/resources/views/admin/layanan/index.blade_20260413221612.php deleted file mode 100644 index 7b63fe9..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221612.php +++ /dev/null @@ -1,158 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221614.php b/.history/resources/views/admin/layanan/index.blade_20260413221614.php deleted file mode 100644 index 6ff4561..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221614.php +++ /dev/null @@ -1,158 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221619.php b/.history/resources/views/admin/layanan/index.blade_20260413221619.php deleted file mode 100644 index 6d2b644..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221619.php +++ /dev/null @@ -1,156 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221622.php b/.history/resources/views/admin/layanan/index.blade_20260413221622.php deleted file mode 100644 index 287e50f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221622.php +++ /dev/null @@ -1,188 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413221623.php b/.history/resources/views/admin/layanan/index.blade_20260413221623.php deleted file mode 100644 index 0d3e300..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413221623.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223230.php b/.history/resources/views/admin/layanan/index.blade_20260413223230.php deleted file mode 100644 index b9a8581..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223230.php +++ /dev/null @@ -1,188 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223435.php b/.history/resources/views/admin/layanan/index.blade_20260413223435.php deleted file mode 100644 index 3e7ae4e..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223435.php +++ /dev/null @@ -1,176 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223635.php b/.history/resources/views/admin/layanan/index.blade_20260413223635.php deleted file mode 100644 index 6471e89..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223635.php +++ /dev/null @@ -1,176 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223657.php b/.history/resources/views/admin/layanan/index.blade_20260413223657.php deleted file mode 100644 index 7243888..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223657.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223737.php b/.history/resources/views/admin/layanan/index.blade_20260413223737.php deleted file mode 100644 index 6ae74ab..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223737.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - -{{-- --}} diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223744.php b/.history/resources/views/admin/layanan/index.blade_20260413223744.php deleted file mode 100644 index 7243888..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223744.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223910.php b/.history/resources/views/admin/layanan/index.blade_20260413223910.php deleted file mode 100644 index eea3aa3..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223910.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -{{-- --}} - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223919.php b/.history/resources/views/admin/layanan/index.blade_20260413223919.php deleted file mode 100644 index 7243888..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223919.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223924.php b/.history/resources/views/admin/layanan/index.blade_20260413223924.php deleted file mode 100644 index 3d713c8..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223924.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - -{{-- - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223926.php b/.history/resources/views/admin/layanan/index.blade_20260413223926.php deleted file mode 100644 index 7243888..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223926.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223929.php b/.history/resources/views/admin/layanan/index.blade_20260413223929.php deleted file mode 100644 index 2204fbd..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223929.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - -{{-- --}} - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413223951.php b/.history/resources/views/admin/layanan/index.blade_20260413223951.php deleted file mode 100644 index 7243888..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413223951.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224122.php b/.history/resources/views/admin/layanan/index.blade_20260413224122.php deleted file mode 100644 index 8dc13e7..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224122.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224146.php b/.history/resources/views/admin/layanan/index.blade_20260413224146.php deleted file mode 100644 index 7243888..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224146.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224202.php b/.history/resources/views/admin/layanan/index.blade_20260413224202.php deleted file mode 100644 index 8dc13e7..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224202.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224230.php b/.history/resources/views/admin/layanan/index.blade_20260413224230.php deleted file mode 100644 index 278add9..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224230.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224526.php b/.history/resources/views/admin/layanan/index.blade_20260413224526.php deleted file mode 100644 index 952cbd4..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224526.php +++ /dev/null @@ -1,190 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224527.php b/.history/resources/views/admin/layanan/index.blade_20260413224527.php deleted file mode 100644 index eff7512..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224527.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - - - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224629.php b/.history/resources/views/admin/layanan/index.blade_20260413224629.php deleted file mode 100644 index a3e4ac3..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224629.php +++ /dev/null @@ -1,188 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224630.php b/.history/resources/views/admin/layanan/index.blade_20260413224630.php deleted file mode 100644 index 5448e9b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224630.php +++ /dev/null @@ -1,188 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224648.php b/.history/resources/views/admin/layanan/index.blade_20260413224648.php deleted file mode 100644 index c14bb00..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224648.php +++ /dev/null @@ -1,187 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
- - - -
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224711.php b/.history/resources/views/admin/layanan/index.blade_20260413224711.php deleted file mode 100644 index 643cd5f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224711.php +++ /dev/null @@ -1,156 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224716.php b/.history/resources/views/admin/layanan/index.blade_20260413224716.php deleted file mode 100644 index c307f12..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224716.php +++ /dev/null @@ -1,186 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224904.php b/.history/resources/views/admin/layanan/index.blade_20260413224904.php deleted file mode 100644 index f326213..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224904.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224905.php b/.history/resources/views/admin/layanan/index.blade_20260413224905.php deleted file mode 100644 index 8e076cc..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224905.php +++ /dev/null @@ -1,186 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413224927.php b/.history/resources/views/admin/layanan/index.blade_20260413224927.php deleted file mode 100644 index 900b1df..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413224927.php +++ /dev/null @@ -1,166 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225244.php b/.history/resources/views/admin/layanan/index.blade_20260413225244.php deleted file mode 100644 index 070e71a..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225244.php +++ /dev/null @@ -1,169 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225303.php b/.history/resources/views/admin/layanan/index.blade_20260413225303.php deleted file mode 100644 index 05d7d22..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225303.php +++ /dev/null @@ -1,173 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225316.php b/.history/resources/views/admin/layanan/index.blade_20260413225316.php deleted file mode 100644 index 2b81499..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225316.php +++ /dev/null @@ -1,177 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225618.php b/.history/resources/views/admin/layanan/index.blade_20260413225618.php deleted file mode 100644 index 6da7c3f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225618.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- - -
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225723.php b/.history/resources/views/admin/layanan/index.blade_20260413225723.php deleted file mode 100644 index 6450ac0..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225723.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
-
- -
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225726.php b/.history/resources/views/admin/layanan/index.blade_20260413225726.php deleted file mode 100644 index 8e2481d..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225726.php +++ /dev/null @@ -1,172 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
- -
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413225730.php b/.history/resources/views/admin/layanan/index.blade_20260413225730.php deleted file mode 100644 index f58179f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413225730.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413230000.php b/.history/resources/views/admin/layanan/index.blade_20260413230000.php deleted file mode 100644 index 587aa54..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413230000.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413230217.php b/.history/resources/views/admin/layanan/index.blade_20260413230217.php deleted file mode 100644 index f8439ba..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413230217.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413230218.php b/.history/resources/views/admin/layanan/index.blade_20260413230218.php deleted file mode 100644 index c26e617..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413230218.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - -@push('scripts') - -@endpush - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413230234.php b/.history/resources/views/admin/layanan/index.blade_20260413230234.php deleted file mode 100644 index 9c55af9..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413230234.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - -@push('scripts') - -@endpush - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413230302.php b/.history/resources/views/admin/layanan/index.blade_20260413230302.php deleted file mode 100644 index 189a8e6..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413230302.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413230925.php b/.history/resources/views/admin/layanan/index.blade_20260413230925.php deleted file mode 100644 index 0c86da6..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413230925.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231125.php b/.history/resources/views/admin/layanan/index.blade_20260413231125.php deleted file mode 100644 index f577831..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231125.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231326.php b/.history/resources/views/admin/layanan/index.blade_20260413231326.php deleted file mode 100644 index 51b8b5b..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231326.php +++ /dev/null @@ -1,168 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231525.php b/.history/resources/views/admin/layanan/index.blade_20260413231525.php deleted file mode 100644 index 4e20fa6..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231525.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231526.php b/.history/resources/views/admin/layanan/index.blade_20260413231526.php deleted file mode 100644 index bfad64e..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231526.php +++ /dev/null @@ -1,168 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231546.php b/.history/resources/views/admin/layanan/index.blade_20260413231546.php deleted file mode 100644 index 83c9454..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231546.php +++ /dev/null @@ -1,168 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231559.php b/.history/resources/views/admin/layanan/index.blade_20260413231559.php deleted file mode 100644 index 7589fbd..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231559.php +++ /dev/null @@ -1,159 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413231930.php b/.history/resources/views/admin/layanan/index.blade_20260413231930.php deleted file mode 100644 index 4753b6a..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413231930.php +++ /dev/null @@ -1,157 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260413232008.php b/.history/resources/views/admin/layanan/index.blade_20260413232008.php deleted file mode 100644 index 19009b4..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260413232008.php +++ /dev/null @@ -1,157 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/layanan/index.blade_20260414203715.php b/.history/resources/views/admin/layanan/index.blade_20260414203715.php deleted file mode 100644 index 8c8b0a3..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260414203715.php +++ /dev/null @@ -1 +0,0 @@ -Route::resource('informasi', InformasiController::class); diff --git a/.history/resources/views/admin/layanan/index.blade_20260414203718.php b/.history/resources/views/admin/layanan/index.blade_20260414203718.php deleted file mode 100644 index 071260c..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260414203718.php +++ /dev/null @@ -1,157 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260414203722.php b/.history/resources/views/admin/layanan/index.blade_20260414203722.php deleted file mode 100644 index 1cda8e1..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260414203722.php +++ /dev/null @@ -1,68 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Informasi

- - @if(session('success')) -
{{ session('success') }}
- @endif - - - + Tambah Informasi - - - - - - - - - - - - - - - - @forelse($informasi as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
JudulKategoriPentingViewsTanggalAksi
{{ $i->judul }}{{ $i->kategori }} - @if($i->is_penting) - Penting - @else - - - @endif - {{ $i->views }}{{ $i->tanggal }} - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data
- -
-@endsection diff --git a/.history/resources/views/admin/layanan/index.blade_20260414203911.php b/.history/resources/views/admin/layanan/index.blade_20260414203911.php deleted file mode 100644 index 071260c..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260414203911.php +++ /dev/null @@ -1,157 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - - -
- @csrf - @method('DELETE') - - -
-
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - diff --git a/.history/resources/views/admin/layanan/index.blade_20260416104104.php b/.history/resources/views/admin/layanan/index.blade_20260416104104.php deleted file mode 100644 index 0ad0f7f..0000000 --- a/.history/resources/views/admin/layanan/index.blade_20260416104104.php +++ /dev/null @@ -1,174 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Layanan Pengaduan

- - @if(session('success')) - - @endif - -
-
-
Daftar Pengaduan
-
- -
-
- - - - - - - - - - - - - - - - - @forelse($layanan as $item) - - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
NoNama PenghuniTanggal PengaduanKategori MasalahDeskripsiFotoStatusTanggapan AdminAksi
{{ $loop->iteration }}{{ $item->penghuni->nama ?? '-' }}{{ $item->tanggal_pengaduan }}{{ ucfirst($item->kategori_masalah) }}{{ \Illuminate\Support\Str::limit($item->deskripsi, 40) }} - @if($item->foto) - - @else - - - @endif - - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - {{ $item->tanggapan_admin ?? 'Belum ada tanggapan' }} - - - {{-- 🔥 RT TANGGAPI --}} - @if(auth()->user()->role == 'rt' && $item->status == 'diajukan') -
- @csrf - - -
- @endif - - - {{-- 🔥 ADMIN APPROVE --}} - @if(auth()->user()->role == 'admin' && $item->status == 'proses') -
- @csrf - -
- @endif - - - {{-- 🔥 HAPUS --}} -
- @csrf - @method('DELETE') - - -
- -
- Belum ada data pengaduan -
-
- - -
-
-
-@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/admin/penghuni/create.blade_20260330211444.php b/.history/resources/views/admin/penghuni/create.blade_20260330211444.php deleted file mode 100644 index 9a914d2..0000000 --- a/.history/resources/views/admin/penghuni/create.blade_20260330211444.php +++ /dev/null @@ -1,114 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Tambah Data Penghuni

- - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - -
- @csrf - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH (PENGGANTI BLOK & NO RUMAH) --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - - Kembali -
-
- -{{-- SCRIPT --}} - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260329215153.php b/.history/resources/views/admin/penghuni/edit.blade_20260329215153.php deleted file mode 100644 index aba9a6b..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260329215153.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('') - -@section('content') -
-

Edit Data Penghuni

- - {{-- tampilkan error validasi --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - -
- @csrf - @method('PUT') -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - - Batal -
-
- - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260329215155.php b/.history/resources/views/admin/penghuni/edit.blade_20260329215155.php deleted file mode 100644 index 260dfc6..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260329215155.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Data Penghuni

- - {{-- tampilkan error validasi --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - -
- @csrf - @method('PUT') -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - - Batal -
-
- - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331000512.php b/.history/resources/views/admin/penghuni/edit.blade_20260331000512.php deleted file mode 100644 index bae467b..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331000512.php +++ /dev/null @@ -1,126 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Data Penghuni

- - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - -
- @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH (FIX UTAMA) --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - - Batal -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331003312.php b/.history/resources/views/admin/penghuni/edit.blade_20260331003312.php deleted file mode 100644 index 9646aaa..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331003312.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Data Penghuni

- - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - -
- @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331003334.php b/.history/resources/views/admin/penghuni/edit.blade_20260331003334.php deleted file mode 100644 index bae467b..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331003334.php +++ /dev/null @@ -1,126 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Data Penghuni

- - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - -
- @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH (FIX UTAMA) --}} -
- - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - - Batal -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331003335.php b/.history/resources/views/admin/penghuni/edit.blade_20260331003335.php deleted file mode 100644 index 9646aaa..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331003335.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit Data Penghuni

- - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - -
- @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331004145.php b/.history/resources/views/admin/penghuni/edit.blade_20260331004145.php deleted file mode 100644 index 773b334..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331004145.php +++ /dev/null @@ -1,149 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- @if(isset($penghuni->id)) -

Edit Data Penghuni

-@else -

Edit Data Rumah

-@endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - -
- @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331004150.php b/.history/resources/views/admin/penghuni/edit.blade_20260331004150.php deleted file mode 100644 index 2c2794d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331004150.php +++ /dev/null @@ -1,149 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- @if(isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - -
- @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331005052.php b/.history/resources/views/admin/penghuni/edit.blade_20260331005052.php deleted file mode 100644 index d22c52c..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331005052.php +++ /dev/null @@ -1,154 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- @if(isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - @if(isset($penghuni->id)) -
-@else - -@endif - - @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331005058.php b/.history/resources/views/admin/penghuni/edit.blade_20260331005058.php deleted file mode 100644 index 242e28e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331005058.php +++ /dev/null @@ -1,154 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- @if(isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - @if(isset($penghuni->id)) -
- @else - - @endif - - @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331011340.php b/.history/resources/views/admin/penghuni/edit.blade_20260331011340.php deleted file mode 100644 index 49679a8..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331011340.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
- @else - - @endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331011403.php b/.history/resources/views/admin/penghuni/edit.blade_20260331011403.php deleted file mode 100644 index 242e28e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331011403.php +++ /dev/null @@ -1,154 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- @if(isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- 🔥 TAMBAHAN: INFO RUMAH SAAT INI --}} - @if($penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - @if(isset($penghuni->id)) -
- @else - - @endif - - @csrf - @method('PUT') - - {{-- NAMA --}} -
- - -
- - {{-- KTP --}} -
- - -
- - {{-- EMAIL --}} -
- - -
- - {{-- TELEPON --}} -
- - -
- - {{-- ALAMAT --}} -
- - -
- - {{-- 🔥 PILIH RUMAH --}} -
- - - - {{-- 🔥 TAMBAHAN --}} - - Pilih rumah kosong atau tetap gunakan rumah saat ini - -
- - {{-- STATUS --}} -
- - -
- - {{-- STATUS HUNI --}} -
- - -
- - {{-- TANGGAL MASUK --}} -
- - -
- - {{-- TANGGAL KELUAR --}} - - - {{-- 🔥 TAMBAHAN BUTTON STYLE --}} - - - - Batal - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331011404.php b/.history/resources/views/admin/penghuni/edit.blade_20260331011404.php deleted file mode 100644 index 49679a8..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331011404.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
- @else - - @endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331011721.php b/.history/resources/views/admin/penghuni/edit.blade_20260331011721.php deleted file mode 100644 index 89e738f..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331011721.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
- @else - - @endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331011745.php b/.history/resources/views/admin/penghuni/edit.blade_20260331011745.php deleted file mode 100644 index 7371683..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331011745.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
-@elseif(isset($rumah) && is_object($rumah)) - -@endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331011748.php b/.history/resources/views/admin/penghuni/edit.blade_20260331011748.php deleted file mode 100644 index eab6277..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331011748.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
- @elseif(isset($rumah) && is_object($rumah)) - - @endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331013113.php b/.history/resources/views/admin/penghuni/edit.blade_20260331013113.php deleted file mode 100644 index c3fcd4d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331013113.php +++ /dev/null @@ -1,90 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - - - - - -@endif - - -Kembali - -
-
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331013159.php b/.history/resources/views/admin/penghuni/edit.blade_20260331013159.php deleted file mode 100644 index c3fcd4d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331013159.php +++ /dev/null @@ -1,90 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - - - - - -@endif - - -Kembali - -
-
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331013200.php b/.history/resources/views/admin/penghuni/edit.blade_20260331013200.php deleted file mode 100644 index eab6277..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331013200.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
- @elseif(isset($rumah) && is_object($rumah)) - - @endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331013220.php b/.history/resources/views/admin/penghuni/edit.blade_20260331013220.php deleted file mode 100644 index 7371683..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331013220.php +++ /dev/null @@ -1,195 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- JUDUL DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -

Edit Data Penghuni

- @else -

Edit Data Rumah

- @endif - - {{-- ERROR VALIDASI --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - {{-- INFO RUMAH SAAT INI --}} - @if(isset($penghuni) && $penghuni && $penghuni->rumah) -
- Rumah saat ini: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @endif - - {{-- FORM DINAMIS --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) -
-@elseif(isset($rumah) && is_object($rumah)) - -@endif - - @csrf - @method('PUT') - - {{-- ========================= --}} - {{-- FORM PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni && isset($penghuni->id)) - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- PILIH RUMAH --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - @else - - {{-- ========================= --}} - {{-- FORM RUMAH --}} - {{-- ========================= --}} - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - @endif - - {{-- BUTTON --}} - - - - Kembali - - -
-
- -{{-- SCRIPT --}} - - -@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331013225.php b/.history/resources/views/admin/penghuni/edit.blade_20260331013225.php deleted file mode 100644 index c3fcd4d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331013225.php +++ /dev/null @@ -1,90 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - - - - - -@endif - - -Kembali - -
-
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331171202.php b/.history/resources/views/admin/penghuni/edit.blade_20260331171202.php deleted file mode 100644 index c9ac673..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331171202.php +++ /dev/null @@ -1,122 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331171223.php b/.history/resources/views/admin/penghuni/edit.blade_20260331171223.php deleted file mode 100644 index 9eef86e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331171223.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331171951.php b/.history/resources/views/admin/penghuni/edit.blade_20260331171951.php deleted file mode 100644 index a950249..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331171951.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331171957.php b/.history/resources/views/admin/penghuni/edit.blade_20260331171957.php deleted file mode 100644 index 6988d91..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331171957.php +++ /dev/null @@ -1,129 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - < action="{{ route('rumah.update', $rumah->id) }}" method="POST"> -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331172029.php b/.history/resources/views/admin/penghuni/edit.blade_20260331172029.php deleted file mode 100644 index 9eef86e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331172029.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331172108.php b/.history/resources/views/admin/penghuni/edit.blade_20260331172108.php deleted file mode 100644 index a950249..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331172108.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331172602.php b/.history/resources/views/admin/penghuni/edit.blade_20260331172602.php deleted file mode 100644 index b40a58b..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331172602.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331172722.php b/.history/resources/views/admin/penghuni/edit.blade_20260331172722.php deleted file mode 100644 index a950249..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331172722.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331173250.php b/.history/resources/views/admin/penghuni/edit.blade_20260331173250.php deleted file mode 100644 index ea691cc..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331173250.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331173846.php b/.history/resources/views/admin/penghuni/edit.blade_20260331173846.php deleted file mode 100644 index a950249..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331173846.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331174116.php b/.history/resources/views/admin/penghuni/edit.blade_20260331174116.php deleted file mode 100644 index 4ca5dc7..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331174116.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331174130.php b/.history/resources/views/admin/penghuni/edit.blade_20260331174130.php deleted file mode 100644 index a950249..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331174130.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331174349.php b/.history/resources/views/admin/penghuni/edit.blade_20260331174349.php deleted file mode 100644 index 4ca5dc7..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331174349.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331175256.php b/.history/resources/views/admin/penghuni/edit.blade_20260331175256.php deleted file mode 100644 index df142db..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331175256.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331175323.php b/.history/resources/views/admin/penghuni/edit.blade_20260331175323.php deleted file mode 100644 index a26056a..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331175323.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331175327.php b/.history/resources/views/admin/penghuni/edit.blade_20260331175327.php deleted file mode 100644 index 8d10b82..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331175327.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331175338.php b/.history/resources/views/admin/penghuni/edit.blade_20260331175338.php deleted file mode 100644 index 4ca5dc7..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331175338.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331175902.php b/.history/resources/views/admin/penghuni/edit.blade_20260331175902.php deleted file mode 100644 index df142db..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331175902.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331180100.php b/.history/resources/views/admin/penghuni/edit.blade_20260331180100.php deleted file mode 100644 index a950249..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331180100.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331180104.php b/.history/resources/views/admin/penghuni/edit.blade_20260331180104.php deleted file mode 100644 index 9eef86e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331180104.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331180128.php b/.history/resources/views/admin/penghuni/edit.blade_20260331180128.php deleted file mode 100644 index 7c48c61..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331180128.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331180148.php b/.history/resources/views/admin/penghuni/edit.blade_20260331180148.php deleted file mode 100644 index a213cfd..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331180148.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - {{-- 🔥 FOTO LAMA --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- 🔥 INPUT FOTO BARU --}} -
- - -
- - {{-- 🔥 PREVIEW FOTO BARU --}} -
- -
- - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331180611.php b/.history/resources/views/admin/penghuni/edit.blade_20260331180611.php deleted file mode 100644 index a6faa73..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331180611.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS TANAH --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO SAAT INI --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- GANTI FOTO --}} -
- - -
- - {{-- BUTTON --}} - - Kembali - -
- -@endif - - -Kembali - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331180637.php b/.history/resources/views/admin/penghuni/edit.blade_20260331180637.php deleted file mode 100644 index dc4d86c..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331180637.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS TANAH --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO SAAT INI --}} -
-
- - @if($rumah->foto) - - @else -

Belum ada foto

- @endif -
- - {{-- GANTI FOTO --}} -
- - -
- - {{-- BUTTON --}} - - Kembali - -
- -@endif - -{{-- -Kembali --}} - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182154.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182154.php deleted file mode 100644 index d564068..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182154.php +++ /dev/null @@ -1,137 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - -{{-- -Kembali --}} - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182208.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182208.php deleted file mode 100644 index 8a0f0e8..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182208.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -< action="{{ route('admin.rumah.update', $rumah->id) }}" method="POST" enctype="multipart/form-data"> - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -@endif - -{{-- -Kembali --}} - -
-
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182210.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182210.php deleted file mode 100644 index a5ddbb2..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182210.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -< action="{{ route('admin.rumah.update', $rumah->id) }}" method="POST" enctype="multipart/form-data"> - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali -@endif - -{{-- -Kembali --}} - -
-
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182218.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182218.php deleted file mode 100644 index d564068..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182218.php +++ /dev/null @@ -1,137 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - -{{-- -Kembali --}} - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182233.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182233.php deleted file mode 100644 index c6ad73e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182233.php +++ /dev/null @@ -1,137 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - -{{-- -Kembali --}} - - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182234.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182234.php deleted file mode 100644 index 7796628..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182234.php +++ /dev/null @@ -1,136 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - -{{-- -Kembali --}} - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182235.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182235.php deleted file mode 100644 index 091b5f7..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182235.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - -{{-- -Kembali --}} -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182241.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182241.php deleted file mode 100644 index db327eb..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182241.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - - -Kembali -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331182305.php b/.history/resources/views/admin/penghuni/edit.blade_20260331182305.php deleted file mode 100644 index 6ac0491..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331182305.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - {{-- BLOK --}} - - - {{-- NO RUMAH --}} - - - {{-- STATUS --}} - - - {{-- LUAS --}} - - - {{-- HARGA --}} - - - {{-- KETERANGAN --}} - - - {{-- FOTO --}} -
- Foto Saat Ini
- @if($rumah->foto) - - @else - Belum ada foto - @endif -
- - - - - Kembali - -
- -@endif - -{{-- -Kembali -
--}} -@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331183222.php b/.history/resources/views/admin/penghuni/edit.blade_20260331183222.php deleted file mode 100644 index 8a15712..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331183222.php +++ /dev/null @@ -1,124 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- FORM --}} -@if($isEditPenghuni) -
-@elseif($isEditRumah) - -@endif - -@csrf -@method('PUT') - -{{-- ========================= --}} -{{-- PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - - - - - - - - {{-- PILIH RUMAH --}} - - -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - - - @csrf - @method('PUT') - - - - - - - - - - - - - - {{-- FOTO --}} - @if($rumah->foto) -
- @endif - - - - - Kembali - -
- -@endif - -{{-- -Kembali -
--}} -@endsection - - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260331235425.php b/.history/resources/views/admin/penghuni/edit.blade_20260331235425.php deleted file mode 100644 index f2e1b2f..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260331235425.php +++ /dev/null @@ -1,127 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - - - - - - - - - - - - - Kembali - -
- -{{-- ========================= --}} -{{-- RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - - - - - - - - - - - - - - {{-- FOTO LAMA --}} - @if($rumah->foto) -
- @else -
- @endif - - {{-- INPUT FOTO --}} - - - - Kembali - -
- -@endif - -
-@endsection - -{{-- PREVIEW FOTO --}} - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401102429.php b/.history/resources/views/admin/penghuni/edit.blade_20260401102429.php deleted file mode 100644 index e8cbb2d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401102429.php +++ /dev/null @@ -1,163 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- FOTO --}} -
-
- - @if($rumah->foto) -
- @else -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection - -{{-- PREVIEW FOTO --}} - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401102813.php b/.history/resources/views/admin/penghuni/edit.blade_20260401102813.php deleted file mode 100644 index 62791f4..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401102813.php +++ /dev/null @@ -1,154 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401102825.php b/.history/resources/views/admin/penghuni/edit.blade_20260401102825.php deleted file mode 100644 index e8cbb2d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401102825.php +++ /dev/null @@ -1,163 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- FOTO --}} -
-
- - @if($rumah->foto) -
- @else -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection - -{{-- PREVIEW FOTO --}} - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401102832.php b/.history/resources/views/admin/penghuni/edit.blade_20260401102832.php deleted file mode 100644 index 62791f4..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401102832.php +++ /dev/null @@ -1,154 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401102834.php b/.history/resources/views/admin/penghuni/edit.blade_20260401102834.php deleted file mode 100644 index e8cbb2d..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401102834.php +++ /dev/null @@ -1,163 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- FOTO --}} -
-
- - @if($rumah->foto) -
- @else -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection - -{{-- PREVIEW FOTO --}} - diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401102839.php b/.history/resources/views/admin/penghuni/edit.blade_20260401102839.php deleted file mode 100644 index 62791f4..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401102839.php +++ /dev/null @@ -1,154 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401103101.php b/.history/resources/views/admin/penghuni/edit.blade_20260401103101.php deleted file mode 100644 index 544afcb..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401103101.php +++ /dev/null @@ -1,309 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- - @extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - - - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- - - Kembali - - - -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection - - - Kembali - - - -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401103110.php b/.history/resources/views/admin/penghuni/edit.blade_20260401103110.php deleted file mode 100644 index c1e5589..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401103110.php +++ /dev/null @@ -1,156 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- - - - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401103119.php b/.history/resources/views/admin/penghuni/edit.blade_20260401103119.php deleted file mode 100644 index 755b6e1..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401103119.php +++ /dev/null @@ -1,177 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401103131.php b/.history/resources/views/admin/penghuni/edit.blade_20260401103131.php deleted file mode 100644 index 8fe2d77..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401103131.php +++ /dev/null @@ -1,177 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection diff --git a/.history/resources/views/admin/penghuni/edit.blade_20260401103215.php b/.history/resources/views/admin/penghuni/edit.blade_20260401103215.php deleted file mode 100644 index 7b0bf7e..0000000 --- a/.history/resources/views/admin/penghuni/edit.blade_20260401103215.php +++ /dev/null @@ -1,194 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -@php - $isEditPenghuni = isset($penghuni) && $penghuni && isset($penghuni->id); - $isEditRumah = isset($rumah) && is_object($rumah); -@endphp - -{{-- JUDUL --}} -@if($isEditPenghuni) -

Edit Data Penghuni

-@elseif($isEditRumah) -

Edit Data Rumah

-@endif - -{{-- ERROR --}} -@if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
-@endif - -{{-- ========================= --}} -{{-- FORM PENGHUNI --}} -{{-- ========================= --}} -@if($isEditPenghuni) - -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 TAMBAHAN --}} -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - Kembali - -
- -{{-- ========================= --}} -{{-- FORM RUMAH --}} -{{-- ========================= --}} -@elseif($isEditRumah) - -
- - @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
-
- - @if($rumah->foto) -
- @endif - - -
- - - Kembali - -
- -@endif - -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330202521.php b/.history/resources/views/admin/penghuni/index.blade_20260330202521.php deleted file mode 100644 index a58235b..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330202521.php +++ /dev/null @@ -1,149 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->blok_rumah }}{{ $p->no_rumah }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - Tambah Rumah - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330211656.php b/.history/resources/views/admin/penghuni/index.blade_20260330211656.php deleted file mode 100644 index 47490fb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330211656.php +++ /dev/null @@ -1,149 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - Tambah Rumah - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330211700.php b/.history/resources/views/admin/penghuni/index.blade_20260330211700.php deleted file mode 100644 index 1213ca5..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330211700.php +++ /dev/null @@ -1,149 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - Tambah Rumah - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330221630.php b/.history/resources/views/admin/penghuni/index.blade_20260330221630.php deleted file mode 100644 index 3b4093d..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330221630.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330221640.php b/.history/resources/views/admin/penghuni/index.blade_20260330221640.php deleted file mode 100644 index b6415e3..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330221640.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330221854.php b/.history/resources/views/admin/penghuni/index.blade_20260330221854.php deleted file mode 100644 index 0696091..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330221854.php +++ /dev/null @@ -1,152 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330221857.php b/.history/resources/views/admin/penghuni/index.blade_20260330221857.php deleted file mode 100644 index 6c38217..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330221857.php +++ /dev/null @@ -1,206 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaGambarKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }} m²Rp {{ number_format($r->harga, 0, ',', '.') }} - @if($r->gambar) - - @else - - - @endif - {{ $r->keterangan }} - Edit - Hapus -
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- 🔥 MODAL TAMBAH RUMAH --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330231250.php b/.history/resources/views/admin/penghuni/index.blade_20260330231250.php deleted file mode 100644 index c5266b2..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330231250.php +++ /dev/null @@ -1,234 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330231906.php b/.history/resources/views/admin/penghuni/index.blade_20260330231906.php deleted file mode 100644 index b55d2a7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330231906.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); -@endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330231910.php b/.history/resources/views/admin/penghuni/index.blade_20260330231910.php deleted file mode 100644 index edb045c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330231910.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330232014.php b/.history/resources/views/admin/penghuni/index.blade_20260330232014.php deleted file mode 100644 index 970f9e3..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330232014.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330232017.php b/.history/resources/views/admin/penghuni/index.blade_20260330232017.php deleted file mode 100644 index 0428a2e..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330232017.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330232041.php b/.history/resources/views/admin/penghuni/index.blade_20260330232041.php deleted file mode 100644 index edb045c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330232041.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330232826.php b/.history/resources/views/admin/penghuni/index.blade_20260330232826.php deleted file mode 100644 index 67d51e7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330232826.php +++ /dev/null @@ -1,212 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - {{-- TYPE --}} - - - {{-- STATUS --}} - - - {{-- KEPEMILIKAN --}} - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuasHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330232828.php b/.history/resources/views/admin/penghuni/index.blade_20260330232828.php deleted file mode 100644 index 67d51e7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330232828.php +++ /dev/null @@ -1,212 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - {{-- TYPE --}} - - - {{-- STATUS --}} - - - {{-- KEPEMILIKAN --}} - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuasHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233005.php b/.history/resources/views/admin/penghuni/index.blade_20260330233005.php deleted file mode 100644 index 67d51e7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233005.php +++ /dev/null @@ -1,212 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - {{-- TYPE --}} - - - {{-- STATUS --}} - - - {{-- KEPEMILIKAN --}} - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuasHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233007.php b/.history/resources/views/admin/penghuni/index.blade_20260330233007.php deleted file mode 100644 index edb045c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233007.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233253.php b/.history/resources/views/admin/penghuni/index.blade_20260330233253.php deleted file mode 100644 index 2007cf4..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233253.php +++ /dev/null @@ -1,209 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233437.php b/.history/resources/views/admin/penghuni/index.blade_20260330233437.php deleted file mode 100644 index 01657cb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233437.php +++ /dev/null @@ -1,249 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233502.php b/.history/resources/views/admin/penghuni/index.blade_20260330233502.php deleted file mode 100644 index 4716bef..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233502.php +++ /dev/null @@ -1,249 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233509.php b/.history/resources/views/admin/penghuni/index.blade_20260330233509.php deleted file mode 100644 index 01657cb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233509.php +++ /dev/null @@ -1,249 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233554.php b/.history/resources/views/admin/penghuni/index.blade_20260330233554.php deleted file mode 100644 index 01657cb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233554.php +++ /dev/null @@ -1,249 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233555.php b/.history/resources/views/admin/penghuni/index.blade_20260330233555.php deleted file mode 100644 index 01657cb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233555.php +++ /dev/null @@ -1,249 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233604.php b/.history/resources/views/admin/penghuni/index.blade_20260330233604.php deleted file mode 100644 index 84b25b7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233604.php +++ /dev/null @@ -1,210 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganDibuat
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->type_rumah ?? '-' }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - @if($r->status_kepemilikan == 'Tersedia') - Tersedia - @elseif($r->status_kepemilikan == 'Booking') - Booking - @else - Terjual - @endif - {{ $r->luas_tanah ?? '-' }} m² - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->posisi ?? '-' }}{{ $r->keterangan ?? '-' }}{{ $r->created_at ? $r->created_at->format('d-m-Y') : '-' }}
Belum ada data rumah
- -
-
-
- -
-@endsection - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233606.php b/.history/resources/views/admin/penghuni/index.blade_20260330233606.php deleted file mode 100644 index edb045c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233606.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233811.php b/.history/resources/views/admin/penghuni/index.blade_20260330233811.php deleted file mode 100644 index 7bc15e4..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233811.php +++ /dev/null @@ -1,256 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233820.php b/.history/resources/views/admin/penghuni/index.blade_20260330233820.php deleted file mode 100644 index 66ca2e7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233820.php +++ /dev/null @@ -1,256 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanLuas TanahHargaPosisiKeteranganStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233824.php b/.history/resources/views/admin/penghuni/index.blade_20260330233824.php deleted file mode 100644 index cee91cb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233824.php +++ /dev/null @@ -1,255 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanHargaPosisiKeteranganStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233825.php b/.history/resources/views/admin/penghuni/index.blade_20260330233825.php deleted file mode 100644 index e8d5a73..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233825.php +++ /dev/null @@ -1,254 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanHargaPosisiKeteranganStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233827.php b/.history/resources/views/admin/penghuni/index.blade_20260330233827.php deleted file mode 100644 index 734ce5e..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233827.php +++ /dev/null @@ -1,255 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanHargaPosisiKeteranganStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233836.php b/.history/resources/views/admin/penghuni/index.blade_20260330233836.php deleted file mode 100644 index fab306d..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233836.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanHargaPosisiStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330233847.php b/.history/resources/views/admin/penghuni/index.blade_20260330233847.php deleted file mode 100644 index ebe0389..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330233847.php +++ /dev/null @@ -1,252 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - {{-- TAMBAHAN --}} - - - - - {{-- TAMBAHAN --}} - - - - {{-- TAMBAHAN --}} - - - {{-- TAMBAHAN --}} - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahTypeStatusKepemilikanPosisiStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330234011.php b/.history/resources/views/admin/penghuni/index.blade_20260330234011.php deleted file mode 100644 index edb045c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330234011.php +++ /dev/null @@ -1,239 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $terisi = $rumah->contains('no_rumah', $i); - @endphp - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330235807.php b/.history/resources/views/admin/penghuni/index.blade_20260330235807.php deleted file mode 100644 index d312ecc..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330235807.php +++ /dev/null @@ -1,235 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- - {{-- KAVLING --}} -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260330235813.php b/.history/resources/views/admin/penghuni/index.blade_20260330235813.php deleted file mode 100644 index fa2ff46..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260330235813.php +++ /dev/null @@ -1,235 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- - {{-- KAVLING --}} -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - Kosong | - Terisi - - -
-
- - {{-- ===================== --}} - {{-- TABEL 1: DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }}{{ $p->status }}{{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- TABEL 2: DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }}{{ $r->status }}{{ $r->luas_tanah }}{{ $r->harga }}{{ $r->keterangan }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - -{{-- STYLE --}} - - -{{-- SCRIPT --}} - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331000257.php b/.history/resources/views/admin/penghuni/index.blade_20260331000257.php deleted file mode 100644 index 42a5da8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331000257.php +++ /dev/null @@ -1,263 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331001439.php b/.history/resources/views/admin/penghuni/index.blade_20260331001439.php deleted file mode 100644 index 42a5da8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331001439.php +++ /dev/null @@ -1,263 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331001446.php b/.history/resources/views/admin/penghuni/index.blade_20260331001446.php deleted file mode 100644 index 647ce0b..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331001446.php +++ /dev/null @@ -1,263 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002100.php b/.history/resources/views/admin/penghuni/index.blade_20260331002100.php deleted file mode 100644 index d006ae7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002100.php +++ /dev/null @@ -1,264 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeterangan
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002102.php b/.history/resources/views/admin/penghuni/index.blade_20260331002102.php deleted file mode 100644 index 7e520f7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002102.php +++ /dev/null @@ -1,264 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }}
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002118.php b/.history/resources/views/admin/penghuni/index.blade_20260331002118.php deleted file mode 100644 index 9a75ab1..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002118.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002130.php b/.history/resources/views/admin/penghuni/index.blade_20260331002130.php deleted file mode 100644 index 567ad82..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002130.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002132.php b/.history/resources/views/admin/penghuni/index.blade_20260331002132.php deleted file mode 100644 index b8046bd..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002132.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002342.php b/.history/resources/views/admin/penghuni/index.blade_20260331002342.php deleted file mode 100644 index f5c5edb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002342.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002346.php b/.history/resources/views/admin/penghuni/index.blade_20260331002346.php deleted file mode 100644 index 5227cef..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002346.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002351.php b/.history/resources/views/admin/penghuni/index.blade_20260331002351.php deleted file mode 100644 index 7c40eaf..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002351.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002449.php b/.history/resources/views/admin/penghuni/index.blade_20260331002449.php deleted file mode 100644 index b8046bd..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002449.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002806.php b/.history/resources/views/admin/penghuni/index.blade_20260331002806.php deleted file mode 100644 index f191fdc..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002806.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331002812.php b/.history/resources/views/admin/penghuni/index.blade_20260331002812.php deleted file mode 100644 index 1f3414a..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331002812.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331013503.php b/.history/resources/views/admin/penghuni/index.blade_20260331013503.php deleted file mode 100644 index d5eeaf7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331013503.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumah as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331013538.php b/.history/resources/views/admin/penghuni/index.blade_20260331013538.php deleted file mode 100644 index 0f21a50..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331013538.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331141519.php b/.history/resources/views/admin/penghuni/index.blade_20260331141519.php deleted file mode 100644 index 72c49b4..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331141519.php +++ /dev/null @@ -1,277 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331144001.php b/.history/resources/views/admin/penghuni/index.blade_20260331144001.php deleted file mode 100644 index 919df06..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331144001.php +++ /dev/null @@ -1,297 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260331144021.php b/.history/resources/views/admin/penghuni/index.blade_20260331144021.php deleted file mode 100644 index 8156885..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260331144021.php +++ /dev/null @@ -1,309 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- - Tambah Penghuni - -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401000508.php b/.history/resources/views/admin/penghuni/index.blade_20260401000508.php deleted file mode 100644 index 7491693..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401000508.php +++ /dev/null @@ -1,309 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - Edit - - -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401002559.php b/.history/resources/views/admin/penghuni/index.blade_20260401002559.php deleted file mode 100644 index d573efe..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401002559.php +++ /dev/null @@ -1,324 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401002609.php b/.history/resources/views/admin/penghuni/index.blade_20260401002609.php deleted file mode 100644 index 15548ba..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401002609.php +++ /dev/null @@ -1,324 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401002621.php b/.history/resources/views/admin/penghuni/index.blade_20260401002621.php deleted file mode 100644 index 472685b..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401002621.php +++ /dev/null @@ -1,349 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401002640.php b/.history/resources/views/admin/penghuni/index.blade_20260401002640.php deleted file mode 100644 index 901aade..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401002640.php +++ /dev/null @@ -1,367 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401003014.php b/.history/resources/views/admin/penghuni/index.blade_20260401003014.php deleted file mode 100644 index 8c08184..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401003014.php +++ /dev/null @@ -1,376 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401003046.php b/.history/resources/views/admin/penghuni/index.blade_20260401003046.php deleted file mode 100644 index 8cc7657..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401003046.php +++ /dev/null @@ -1,372 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401003302.php b/.history/resources/views/admin/penghuni/index.blade_20260401003302.php deleted file mode 100644 index 9502d1e..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401003302.php +++ /dev/null @@ -1,371 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
-
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401003443.php b/.history/resources/views/admin/penghuni/index.blade_20260401003443.php deleted file mode 100644 index 5af98a8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401003443.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401003452.php b/.history/resources/views/admin/penghuni/index.blade_20260401003452.php deleted file mode 100644 index c5d0c34..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401003452.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004414.php b/.history/resources/views/admin/penghuni/index.blade_20260401004414.php deleted file mode 100644 index 94ecaf0..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004414.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- STYLE --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- SCRIPT (WAJIB DI SINI) --}} -{{-- ===================== --}} - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004416.php b/.history/resources/views/admin/penghuni/index.blade_20260401004416.php deleted file mode 100644 index c5d0c34..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004416.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004418.php b/.history/resources/views/admin/penghuni/index.blade_20260401004418.php deleted file mode 100644 index 94ecaf0..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004418.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- STYLE --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- SCRIPT (WAJIB DI SINI) --}} -{{-- ===================== --}} - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004424.php b/.history/resources/views/admin/penghuni/index.blade_20260401004424.php deleted file mode 100644 index 94ecaf0..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004424.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- STYLE --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- SCRIPT (WAJIB DI SINI) --}} -{{-- ===================== --}} - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004427.php b/.history/resources/views/admin/penghuni/index.blade_20260401004427.php deleted file mode 100644 index 94ecaf0..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004427.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- STYLE --}} -{{-- ===================== --}} - - -{{-- ===================== --}} -{{-- SCRIPT (WAJIB DI SINI) --}} -{{-- ===================== --}} - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004432.php b/.history/resources/views/admin/penghuni/index.blade_20260401004432.php deleted file mode 100644 index c5d0c34..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004432.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004551.php b/.history/resources/views/admin/penghuni/index.blade_20260401004551.php deleted file mode 100644 index 99b0301..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004551.php +++ /dev/null @@ -1,303 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004614.php b/.history/resources/views/admin/penghuni/index.blade_20260401004614.php deleted file mode 100644 index c5d0c34..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004614.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004625.php b/.history/resources/views/admin/penghuni/index.blade_20260401004625.php deleted file mode 100644 index 99b0301..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004625.php +++ /dev/null @@ -1,303 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004626.php b/.history/resources/views/admin/penghuni/index.blade_20260401004626.php deleted file mode 100644 index 99b0301..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004626.php +++ /dev/null @@ -1,303 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004628.php b/.history/resources/views/admin/penghuni/index.blade_20260401004628.php deleted file mode 100644 index 99b0301..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004628.php +++ /dev/null @@ -1,303 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004633.php b/.history/resources/views/admin/penghuni/index.blade_20260401004633.php deleted file mode 100644 index c5d0c34..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004633.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004714.php b/.history/resources/views/admin/penghuni/index.blade_20260401004714.php deleted file mode 100644 index 26d9bb1..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004714.php +++ /dev/null @@ -1,348 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
- - - - - - - - - - - - - @foreach($rumahList as $r) - - - - - - - - - - @endforeach - -
IDBlokNo RumahStatusAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - - - {{-- 🔥 DETAIL --}} - - - - Edit - - -
-
-
- -
-@endsection - -{{-- ===================== --}} -{{-- MODAL DETAIL --}} -{{-- ===================== --}} - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401004816.php b/.history/resources/views/admin/penghuni/index.blade_20260401004816.php deleted file mode 100644 index c5d0c34..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401004816.php +++ /dev/null @@ -1,374 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005124.php b/.history/resources/views/admin/penghuni/index.blade_20260401005124.php deleted file mode 100644 index c174768..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005124.php +++ /dev/null @@ -1,389 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005145.php b/.history/resources/views/admin/penghuni/index.blade_20260401005145.php deleted file mode 100644 index b1d7b4f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005145.php +++ /dev/null @@ -1,396 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@push('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005711.php b/.history/resources/views/admin/penghuni/index.blade_20260401005711.php deleted file mode 100644 index 04a27b3..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005711.php +++ /dev/null @@ -1,396 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@sec('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005712.php b/.history/resources/views/admin/penghuni/index.blade_20260401005712.php deleted file mode 100644 index 9e802a2..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005712.php +++ /dev/null @@ -1,396 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section()('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005716.php b/.history/resources/views/admin/penghuni/index.blade_20260401005716.php deleted file mode 100644 index a8cda21..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005716.php +++ /dev/null @@ -1,396 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - - - -@endpush diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005722.php b/.history/resources/views/admin/penghuni/index.blade_20260401005722.php deleted file mode 100644 index f79bfc7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005722.php +++ /dev/null @@ -1,397 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - - - -@endpush - \ No newline at end of file diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005727.php b/.history/resources/views/admin/penghuni/index.blade_20260401005727.php deleted file mode 100644 index 936b1c9..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005727.php +++ /dev/null @@ -1,400 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - - - -@endsection - -{{-- ===================== --}} -{{-- CREATE PENGHUNI --}} -{{-- ===================== --}} diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005938.php b/.history/resources/views/admin/penghuni/index.blade_20260401005938.php deleted file mode 100644 index b3aa493..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005938.php +++ /dev/null @@ -1,391 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection - -{{-- ===================== --}} -{{-- CREATE PENGHUNI --}} -{{-- ===================== --}} diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401005944.php b/.history/resources/views/admin/penghuni/index.blade_20260401005944.php deleted file mode 100644 index 5c8c384..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401005944.php +++ /dev/null @@ -1,387 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010131.php b/.history/resources/views/admin/penghuni/index.blade_20260401010131.php deleted file mode 100644 index af79539..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010131.php +++ /dev/null @@ -1,392 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010309.php b/.history/resources/views/admin/penghuni/index.blade_20260401010309.php deleted file mode 100644 index 3d342eb..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010309.php +++ /dev/null @@ -1,393 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010315.php b/.history/resources/views/admin/penghuni/index.blade_20260401010315.php deleted file mode 100644 index af9a995..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010315.php +++ /dev/null @@ -1,393 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010339.php b/.history/resources/views/admin/penghuni/index.blade_20260401010339.php deleted file mode 100644 index aec82d3..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010339.php +++ /dev/null @@ -1,412 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010501.php b/.history/resources/views/admin/penghuni/index.blade_20260401010501.php deleted file mode 100644 index b2ce17f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010501.php +++ /dev/null @@ -1,418 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010525.php b/.history/resources/views/admin/penghuni/index.blade_20260401010525.php deleted file mode 100644 index 0f0e1f7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010525.php +++ /dev/null @@ -1,407 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010531.php b/.history/resources/views/admin/penghuni/index.blade_20260401010531.php deleted file mode 100644 index ebccc18..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010531.php +++ /dev/null @@ -1,409 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010532.php b/.history/resources/views/admin/penghuni/index.blade_20260401010532.php deleted file mode 100644 index d622757..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010532.php +++ /dev/null @@ -1,418 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010805.php b/.history/resources/views/admin/penghuni/index.blade_20260401010805.php deleted file mode 100644 index ff5ba7c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010805.php +++ /dev/null @@ -1,440 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010855.php b/.history/resources/views/admin/penghuni/index.blade_20260401010855.php deleted file mode 100644 index b54dd5c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010855.php +++ /dev/null @@ -1,442 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010856.php b/.history/resources/views/admin/penghuni/index.blade_20260401010856.php deleted file mode 100644 index 03499f0..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010856.php +++ /dev/null @@ -1,444 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401010913.php b/.history/resources/views/admin/penghuni/index.blade_20260401010913.php deleted file mode 100644 index f1928e6..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401010913.php +++ /dev/null @@ -1,448 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011342.php b/.history/resources/views/admin/penghuni/index.blade_20260401011342.php deleted file mode 100644 index 6acaf02..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011342.php +++ /dev/null @@ -1,449 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011347.php b/.history/resources/views/admin/penghuni/index.blade_20260401011347.php deleted file mode 100644 index 13b6277..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011347.php +++ /dev/null @@ -1,449 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011507.php b/.history/resources/views/admin/penghuni/index.blade_20260401011507.php deleted file mode 100644 index 1f15613..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011507.php +++ /dev/null @@ -1,468 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011513.php b/.history/resources/views/admin/penghuni/index.blade_20260401011513.php deleted file mode 100644 index 08eb8a7..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011513.php +++ /dev/null @@ -1,451 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011523.php b/.history/resources/views/admin/penghuni/index.blade_20260401011523.php deleted file mode 100644 index 61af084..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011523.php +++ /dev/null @@ -1,451 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011545.php b/.history/resources/views/admin/penghuni/index.blade_20260401011545.php deleted file mode 100644 index 365026f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011545.php +++ /dev/null @@ -1,460 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011618.php b/.history/resources/views/admin/penghuni/index.blade_20260401011618.php deleted file mode 100644 index 594b020..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011618.php +++ /dev/null @@ -1,460 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011623.php b/.history/resources/views/admin/penghuni/index.blade_20260401011623.php deleted file mode 100644 index c80cd3c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011623.php +++ /dev/null @@ -1,459 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011626.php b/.history/resources/views/admin/penghuni/index.blade_20260401011626.php deleted file mode 100644 index da12ed5..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011626.php +++ /dev/null @@ -1,457 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011630.php b/.history/resources/views/admin/penghuni/index.blade_20260401011630.php deleted file mode 100644 index da12ed5..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011630.php +++ /dev/null @@ -1,457 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011639.php b/.history/resources/views/admin/penghuni/index.blade_20260401011639.php deleted file mode 100644 index c80cd3c..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011639.php +++ /dev/null @@ -1,459 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011648.php b/.history/resources/views/admin/penghuni/index.blade_20260401011648.php deleted file mode 100644 index da12ed5..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011648.php +++ /dev/null @@ -1,457 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011650.php b/.history/resources/views/admin/penghuni/index.blade_20260401011650.php deleted file mode 100644 index 031fcc8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011650.php +++ /dev/null @@ -1,458 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011658.php b/.history/resources/views/admin/penghuni/index.blade_20260401011658.php deleted file mode 100644 index 30da060..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011658.php +++ /dev/null @@ -1,462 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401011903.php b/.history/resources/views/admin/penghuni/index.blade_20260401011903.php deleted file mode 100644 index 2358a49..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401011903.php +++ /dev/null @@ -1,469 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - {{-- DETAIL --}} - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401094820.php b/.history/resources/views/admin/penghuni/index.blade_20260401094820.php deleted file mode 100644 index 489e0a3..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401094820.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401094825.php b/.history/resources/views/admin/penghuni/index.blade_20260401094825.php deleted file mode 100644 index 2f27b50..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401094825.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095040.php b/.history/resources/views/admin/penghuni/index.blade_20260401095040.php deleted file mode 100644 index 742718d..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095040.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095127.php b/.history/resources/views/admin/penghuni/index.blade_20260401095127.php deleted file mode 100644 index 3ef9b55..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095127.php +++ /dev/null @@ -1,442 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - - - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095129.php b/.history/resources/views/admin/penghuni/index.blade_20260401095129.php deleted file mode 100644 index 5bf24fe..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095129.php +++ /dev/null @@ -1,440 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
-@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095133.php b/.history/resources/views/admin/penghuni/index.blade_20260401095133.php deleted file mode 100644 index e9a80c2..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095133.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095725.php b/.history/resources/views/admin/penghuni/index.blade_20260401095725.php deleted file mode 100644 index d9b33d8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095725.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
-
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - - Edit - - -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- - {{-- MODAL DETAIL --}} - - -
-@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095745.php b/.history/resources/views/admin/penghuni/index.blade_20260401095745.php deleted file mode 100644 index d9b33d8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095745.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
-
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - - Edit - - -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- - {{-- MODAL DETAIL --}} - - -
-@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095756.php b/.history/resources/views/admin/penghuni/index.blade_20260401095756.php deleted file mode 100644 index e9a80c2..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095756.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095906.php b/.history/resources/views/admin/penghuni/index.blade_20260401095906.php deleted file mode 100644 index 1900896..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095906.php +++ /dev/null @@ -1,464 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - - - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401095958.php b/.history/resources/views/admin/penghuni/index.blade_20260401095958.php deleted file mode 100644 index 0eb8fa8..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401095958.php +++ /dev/null @@ -1,463 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100021.php b/.history/resources/views/admin/penghuni/index.blade_20260401100021.php deleted file mode 100644 index 7cc279e..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100021.php +++ /dev/null @@ -1,462 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100025.php b/.history/resources/views/admin/penghuni/index.blade_20260401100025.php deleted file mode 100644 index 1a556cf..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100025.php +++ /dev/null @@ -1,461 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100027.php b/.history/resources/views/admin/penghuni/index.blade_20260401100027.php deleted file mode 100644 index 5e9775e..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100027.php +++ /dev/null @@ -1,460 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100030.php b/.history/resources/views/admin/penghuni/index.blade_20260401100030.php deleted file mode 100644 index e7f8410..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100030.php +++ /dev/null @@ -1,459 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100031.php b/.history/resources/views/admin/penghuni/index.blade_20260401100031.php deleted file mode 100644 index aa5400f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100031.php +++ /dev/null @@ -1,458 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100038.php b/.history/resources/views/admin/penghuni/index.blade_20260401100038.php deleted file mode 100644 index fbb3870..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100038.php +++ /dev/null @@ -1,457 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100105.php b/.history/resources/views/admin/penghuni/index.blade_20260401100105.php deleted file mode 100644 index 8bf8700..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100105.php +++ /dev/null @@ -1,450 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100108.php b/.history/resources/views/admin/penghuni/index.blade_20260401100108.php deleted file mode 100644 index 7050f5f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100108.php +++ /dev/null @@ -1,448 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@s@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100345.php b/.history/resources/views/admin/penghuni/index.blade_20260401100345.php deleted file mode 100644 index c73e944..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100345.php +++ /dev/null @@ -1,448 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100352.php b/.history/resources/views/admin/penghuni/index.blade_20260401100352.php deleted file mode 100644 index 5ca930f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100352.php +++ /dev/null @@ -1,446 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100850.php b/.history/resources/views/admin/penghuni/index.blade_20260401100850.php deleted file mode 100644 index d7527e1..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100850.php +++ /dev/null @@ -1,431 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100905.php b/.history/resources/views/admin/penghuni/index.blade_20260401100905.php deleted file mode 100644 index 5ca930f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100905.php +++ /dev/null @@ -1,446 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100912.php b/.history/resources/views/admin/penghuni/index.blade_20260401100912.php deleted file mode 100644 index d7527e1..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100912.php +++ /dev/null @@ -1,431 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100919.php b/.history/resources/views/admin/penghuni/index.blade_20260401100919.php deleted file mode 100644 index ab86829..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100919.php +++ /dev/null @@ -1,413 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260401100922.php b/.history/resources/views/admin/penghuni/index.blade_20260401100922.php deleted file mode 100644 index 55358f4..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260401100922.php +++ /dev/null @@ -1,412 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260416201103.php b/.history/resources/views/admin/penghuni/index.blade_20260416201103.php deleted file mode 100644 index 2452f8f..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260416201103.php +++ /dev/null @@ -1,409 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status_huni == 'Kontrak' && $p->tanggal_keluar && now()->gt($p->tanggal_keluar)) - Tidak Aktif - @else - Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah . ' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/.history/resources/views/admin/penghuni/index.blade_20260416201109.php b/.history/resources/views/admin/penghuni/index.blade_20260416201109.php deleted file mode 100644 index 55358f4..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260416201109.php +++ /dev/null @@ -1,412 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status == 'Aktif') - Aktif - @else - Tidak Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260416201110.php b/.history/resources/views/admin/penghuni/index.blade_20260416201110.php deleted file mode 100644 index c6d185b..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260416201110.php +++ /dev/null @@ -1,412 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status_huni == 'Kontrak' && $p->tanggal_keluar && now()->gt($p->tanggal_keluar)) - Tidak Aktif -@else - Aktif -@endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah.' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/admin/penghuni/index.blade_20260416201111.php b/.history/resources/views/admin/penghuni/index.blade_20260416201111.php deleted file mode 100644 index 50d3846..0000000 --- a/.history/resources/views/admin/penghuni/index.blade_20260416201111.php +++ /dev/null @@ -1,409 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Kelola Data Perumahan

- - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - {{-- ===================== --}} - {{-- KAVLING VISUAL --}} - {{-- ===================== --}} -
-
-
Pilih Kavling
-
-
- -
- @for($i = 1; $i <= 30; $i++) - @php - $dataRumah = $rumahList->where('no_rumah', $i)->first(); - @endphp - -
- {{ $i }} -
- @endfor -
- - - 🟢 Kosong | 🔴 Terisi - - -
-
- - {{-- ===================== --}} - {{-- DATA PENGHUNI --}} - {{-- ===================== --}} -
-
-
Data Penghuni
- {{-- - Tambah Penghuni - --}} -
- -
-
- - - - - - - - - - - - - - - - - - - - @forelse($penghuni as $p) - - - - - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDNamaNo KTPEmailNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal KeluarAksi
{{ $loop->iteration }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->email }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - @if($p->status_huni == 'Kontrak' && $p->tanggal_keluar && now()->gt($p->tanggal_keluar)) - Tidak Aktif - @else - Aktif - @endif - {{ $p->status_huni }}{{ \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') }}{{ $p->tanggal_keluar }} - Edit - Hapus -
Belum ada data
-
-
-
- - {{-- ===================== --}} - {{-- DATA RUMAH --}} - {{-- ===================== --}} -
-
-
Data Rumah
- - -
- -
-
- - - - - - - - - - - - - - - @forelse($rumahList as $r) - - - - - - - - - - - - - - - @empty - - - - @endforelse - -
IDBlokNo RumahStatusLuas TanahHargaKeteranganAksi
{{ $loop->iteration }}{{ $r->blok }}{{ $r->no_rumah }} - @if($r->status == 'Kosong') - Kosong - @else - Terisi - @endif - {{ $r->luas_tanah ? $r->luas_tanah . ' m²' : '-' }} - @if($r->harga) - Rp {{ number_format($r->harga, 0, ',', '.') }} - @else - - - @endif - {{ $r->keterangan ?? '-' }} - - - - {{-- EDIT --}} - - Edit - - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - -
- -
Belum ada data rumah
-
-
-
- -
- - -@endsection - -{{-- MODAL --}} - - - - - - - - - - -@section('scripts') - -@endsection diff --git a/.history/resources/views/admin/user/edit.blade_20260401143649.php b/.history/resources/views/admin/user/edit.blade_20260401143649.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/user/edit.blade_20260401144211.php b/.history/resources/views/admin/user/edit.blade_20260401144211.php deleted file mode 100644 index 9cb663a..0000000 --- a/.history/resources/views/admin/user/edit.blade_20260401144211.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit User

- -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - - Kembali -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401140834.php b/.history/resources/views/admin/user/index.blade_20260401140834.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/admin/user/index.blade_20260401140838.php b/.history/resources/views/admin/user/index.blade_20260401140838.php deleted file mode 100644 index 757828b..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401140838.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - @foreach($user as $u) - - - - - - @endforeach - -
NamaEmailAksi
{{ $u->name }}{{ $u->email }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143504.php b/.history/resources/views/admin/user/index.blade_20260401143504.php deleted file mode 100644 index aba075e..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143504.php +++ /dev/null @@ -1,30 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - @endforeach - -
NamaEmailAksi
{{ $u->name }}{{ $u->email }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143507.php b/.history/resources/views/admin/user/index.blade_20260401143507.php deleted file mode 100644 index 5fb41cb..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143507.php +++ /dev/null @@ -1,30 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143512.php b/.history/resources/views/admin/user/index.blade_20260401143512.php deleted file mode 100644 index ae76f76..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143512.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143516.php b/.history/resources/views/admin/user/index.blade_20260401143516.php deleted file mode 100644 index 6bb28dd..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143516.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143519.php b/.history/resources/views/admin/user/index.blade_20260401143519.php deleted file mode 100644 index 68582aa..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143519.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $ }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143520.php b/.history/resources/views/admin/user/index.blade_20260401143520.php deleted file mode 100644 index 5fbe569..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143520.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143523.php b/.history/resources/views/admin/user/index.blade_20260401143523.php deleted file mode 100644 index 6ca2566..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143523.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u-> }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143525.php b/.history/resources/views/admin/user/index.blade_20260401143525.php deleted file mode 100644 index 64b2634..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143525.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143526.php b/.history/resources/views/admin/user/index.blade_20260401143526.php deleted file mode 100644 index cdb6c63..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143526.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->Route::delete('users/{id}', function ($id) { - - }); }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143533.php b/.history/resources/views/admin/user/index.blade_20260401143533.php deleted file mode 100644 index 64b2634..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143533.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143535.php b/.history/resources/views/admin/user/index.blade_20260401143535.php deleted file mode 100644 index ed547fb..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143535.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401143536.php b/.history/resources/views/admin/user/index.blade_20260401143536.php deleted file mode 100644 index 64b2634..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401143536.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144138.php b/.history/resources/views/admin/user/index.blade_20260401144138.php deleted file mode 100644 index 859a92f..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144138.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144141.php b/.history/resources/views/admin/user/index.blade_20260401144141.php deleted file mode 100644 index 66d6220..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144141.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144202.php b/.history/resources/views/admin/user/index.blade_20260401144202.php deleted file mode 100644 index 9cb663a..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144202.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit User

- -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - - Kembali -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144205.php b/.history/resources/views/admin/user/index.blade_20260401144205.php deleted file mode 100644 index 9cb663a..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144205.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Edit User

- -
- @csrf - @method('PUT') - -
- - -
- -
- - -
- -
- - -
- - - Kembali -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144207.php b/.history/resources/views/admin/user/index.blade_20260401144207.php deleted file mode 100644 index 66d6220..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144207.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144259.php b/.history/resources/views/admin/user/index.blade_20260401144259.php deleted file mode 100644 index 0543817..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144259.php +++ /dev/null @@ -1,39 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - @if(session('success')) -
- {{ session('success') }} -
-@endif - - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401144303.php b/.history/resources/views/admin/user/index.blade_20260401144303.php deleted file mode 100644 index aebc00f..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401144303.php +++ /dev/null @@ -1,39 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - - -
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401145358.php b/.history/resources/views/admin/user/index.blade_20260401145358.php deleted file mode 100644 index fb23a19..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401145358.php +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - -
- @csrf - @method('DELETE') - - -
-
-
-@endsection diff --git a/.history/resources/views/admin/user/index.blade_20260401145403.php b/.history/resources/views/admin/user/index.blade_20260401145403.php deleted file mode 100644 index 1853f29..0000000 --- a/.history/resources/views/admin/user/index.blade_20260401145403.php +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Kelola Data User

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - - - - - - - - - - - - @foreach($user as $u) - - - - - - - @endforeach - -
NamaEmailRoleAksi
{{ $u->name }}{{ $u->email }}{{ $u->role }} - - Edit - -
- @csrf - @method('DELETE') - - -
-
-
-@endsection diff --git a/.history/resources/views/auth/forgot.blade_20260417151531.php b/.history/resources/views/auth/forgot.blade_20260417151531.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/auth/forgot.blade_20260417151624.php b/.history/resources/views/auth/forgot.blade_20260417151624.php deleted file mode 100644 index 755eaff..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151624.php +++ /dev/null @@ -1,5 +0,0 @@ -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151918.php b/.history/resources/views/auth/forgot.blade_20260417151918.php deleted file mode 100644 index 28a89b2..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151918.php +++ /dev/null @@ -1,6 +0,0 @@ - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151920.php b/.history/resources/views/auth/forgot.blade_20260417151920.php deleted file mode 100644 index 4f62096..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151920.php +++ /dev/null @@ -1,6 +0,0 @@ -lay -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151922.php b/.history/resources/views/auth/forgot.blade_20260417151922.php deleted file mode 100644 index 46c0f8f..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151922.php +++ /dev/null @@ -1,6 +0,0 @@ -layout('layouts.app') -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151930.php b/.history/resources/views/auth/forgot.blade_20260417151930.php deleted file mode 100644 index 28a89b2..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151930.php +++ /dev/null @@ -1,6 +0,0 @@ - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151933.php b/.history/resources/views/auth/forgot.blade_20260417151933.php deleted file mode 100644 index 05ef368..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151933.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends() -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151935.php b/.history/resources/views/auth/forgot.blade_20260417151935.php deleted file mode 100644 index 55e12cb..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151935.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('lay') -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151937.php b/.history/resources/views/auth/forgot.blade_20260417151937.php deleted file mode 100644 index 9c06788..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151937.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.app') -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151938.php b/.history/resources/views/auth/forgot.blade_20260417151938.php deleted file mode 100644 index 77124f2..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151938.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151951.php b/.history/resources/views/auth/forgot.blade_20260417151951.php deleted file mode 100644 index 53fd643..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151951.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') -@section('content') -
-
-
-
-

Lupa Password

-
-
- @if(session('error')) -
- {{ session('error') }} -
- @endif -
- @csrf -
- - -
- -
-
-
-
-
-@endsection diff --git a/.history/resources/views/auth/forgot.blade_20260417151955.php b/.history/resources/views/auth/forgot.blade_20260417151955.php deleted file mode 100644 index 77124f2..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151955.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417151959.php b/.history/resources/views/auth/forgot.blade_20260417151959.php deleted file mode 100644 index 3a35c61..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417151959.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152002.php b/.history/resources/views/auth/forgot.blade_20260417152002.php deleted file mode 100644 index 0940a70..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152002.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section() -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152032.php b/.history/resources/views/auth/forgot.blade_20260417152032.php deleted file mode 100644 index c88da8d..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152032.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152033.php b/.history/resources/views/auth/forgot.blade_20260417152033.php deleted file mode 100644 index 340f9ba..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152033.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.app') - -@section('content') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152035.php b/.history/resources/views/auth/forgot.blade_20260417152035.php deleted file mode 100644 index 11598e5..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152035.php +++ /dev/null @@ -1,10 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152039.php b/.history/resources/views/auth/forgot.blade_20260417152039.php deleted file mode 100644 index 5097562..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152039.php +++ /dev/null @@ -1,10 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@en -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152041.php b/.history/resources/views/auth/forgot.blade_20260417152041.php deleted file mode 100644 index 066b944..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152041.php +++ /dev/null @@ -1,10 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection -
-@csrf - - -
diff --git a/.history/resources/views/auth/forgot.blade_20260417152046.php b/.history/resources/views/auth/forgot.blade_20260417152046.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152046.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/auth/forgot.blade_20260417152048.php b/.history/resources/views/auth/forgot.blade_20260417152048.php deleted file mode 100644 index 1781b49..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152048.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-@csrf - - -
-@endsection diff --git a/.history/resources/views/auth/forgot.blade_20260417152049.php b/.history/resources/views/auth/forgot.blade_20260417152049.php deleted file mode 100644 index 25745b6..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152049.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- @csrf - - -
-@endsection \ No newline at end of file diff --git a/.history/resources/views/auth/forgot.blade_20260417152120.php b/.history/resources/views/auth/forgot.blade_20260417152120.php deleted file mode 100644 index b581ad3..0000000 --- a/.history/resources/views/auth/forgot.blade_20260417152120.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
- @csrf - - -
-@endsection diff --git a/.history/resources/views/auth/login.blade_20260329205728.php b/.history/resources/views/auth/login.blade_20260329205728.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/auth/login.blade_20260329205944.php b/.history/resources/views/auth/login.blade_20260329205944.php deleted file mode 100644 index 4e3dbaa..0000000 --- a/.history/resources/views/auth/login.blade_20260329205944.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsection diff --git a/.history/resources/views/auth/login.blade_20260329210233.php b/.history/resources/views/auth/login.blade_20260329210233.php deleted file mode 100644 index 8687394..0000000 --- a/.history/resources/views/auth/login.blade_20260329210233.php +++ /dev/null @@ -1,53 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Login Sistem

-
- -
- - @if(session('error')) -
- {{ session('error') }} -
- @endif - - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/login.blade_20260417151736.php b/.history/resources/views/auth/login.blade_20260417151736.php deleted file mode 100644 index 0301e8e..0000000 --- a/.history/resources/views/auth/login.blade_20260417151736.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Login Sistem

-
- -
- - @if(session('error')) -
- {{ session('error') }} -
- @endif - - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- - -
- - - - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/login.blade_20260417151739.php b/.history/resources/views/auth/login.blade_20260417151739.php deleted file mode 100644 index b919992..0000000 --- a/.history/resources/views/auth/login.blade_20260417151739.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Login Sistem

-
- -
- - @if(session('error')) -
- {{ session('error') }} -
- @endif - - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- - -
- - - - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/otp.blade_20260417151542.php b/.history/resources/views/auth/otp.blade_20260417151542.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/auth/otp.blade_20260417151634.php b/.history/resources/views/auth/otp.blade_20260417151634.php deleted file mode 100644 index 7a5e831..0000000 --- a/.history/resources/views/auth/otp.blade_20260417151634.php +++ /dev/null @@ -1,5 +0,0 @@ -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152104.php b/.history/resources/views/auth/otp.blade_20260417152104.php deleted file mode 100644 index e873f89..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152104.php +++ /dev/null @@ -1,6 +0,0 @@ - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152107.php b/.history/resources/views/auth/otp.blade_20260417152107.php deleted file mode 100644 index 8f94987..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152107.php +++ /dev/null @@ -1,7 +0,0 @@ - - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152140.php b/.history/resources/views/auth/otp.blade_20260417152140.php deleted file mode 100644 index c489fc1..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152140.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152142.php b/.history/resources/views/auth/otp.blade_20260417152142.php deleted file mode 100644 index c489fc1..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152142.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152144.php b/.history/resources/views/auth/otp.blade_20260417152144.php deleted file mode 100644 index 779540f..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152144.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('lay') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152145.php b/.history/resources/views/auth/otp.blade_20260417152145.php deleted file mode 100644 index 080faed..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152145.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.auth') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152148.php b/.history/resources/views/auth/otp.blade_20260417152148.php deleted file mode 100644 index 056134a..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152148.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.auth') - - - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152151.php b/.history/resources/views/auth/otp.blade_20260417152151.php deleted file mode 100644 index d8c78b8..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152151.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.auth') - -@section() - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152152.php b/.history/resources/views/auth/otp.blade_20260417152152.php deleted file mode 100644 index dacc4bc..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152152.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.auth') - -@section('') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152153.php b/.history/resources/views/auth/otp.blade_20260417152153.php deleted file mode 100644 index 533eb3c..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152153.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152200.php b/.history/resources/views/auth/otp.blade_20260417152200.php deleted file mode 100644 index f0cd7b1..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152200.php +++ /dev/null @@ -1,11 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsectio - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152201.php b/.history/resources/views/auth/otp.blade_20260417152201.php deleted file mode 100644 index e2824b7..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152201.php +++ /dev/null @@ -1,11 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsection - -
-@csrf - - -
diff --git a/.history/resources/views/auth/otp.blade_20260417152206.php b/.history/resources/views/auth/otp.blade_20260417152206.php deleted file mode 100644 index e2d798c..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152206.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsection - - diff --git a/.history/resources/views/auth/otp.blade_20260417152210.php b/.history/resources/views/auth/otp.blade_20260417152210.php deleted file mode 100644 index 9a8aa3c..0000000 --- a/.history/resources/views/auth/otp.blade_20260417152210.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
- @csrf - - -
-@endsection \ No newline at end of file diff --git a/.history/resources/views/auth/register.blade_20260329205737.php b/.history/resources/views/auth/register.blade_20260329205737.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/auth/register.blade_20260329205951.php b/.history/resources/views/auth/register.blade_20260329205951.php deleted file mode 100644 index 8a5e36f..0000000 --- a/.history/resources/views/auth/register.blade_20260329205951.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsection diff --git a/.history/resources/views/auth/register.blade_20260329210240.php b/.history/resources/views/auth/register.blade_20260329210240.php deleted file mode 100644 index 5ff3f57..0000000 --- a/.history/resources/views/auth/register.blade_20260329210240.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230738.php b/.history/resources/views/auth/register.blade_20260329230738.php deleted file mode 100644 index cb71346..0000000 --- a/.history/resources/views/auth/register.blade_20260329230738.php +++ /dev/null @@ -1,25 +0,0 @@ -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
diff --git a/.history/resources/views/auth/register.blade_20260329230740.php b/.history/resources/views/auth/register.blade_20260329230740.php deleted file mode 100644 index cb71346..0000000 --- a/.history/resources/views/auth/register.blade_20260329230740.php +++ /dev/null @@ -1,25 +0,0 @@ -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
diff --git a/.history/resources/views/auth/register.blade_20260329230742.php b/.history/resources/views/auth/register.blade_20260329230742.php deleted file mode 100644 index cb71346..0000000 --- a/.history/resources/views/auth/register.blade_20260329230742.php +++ /dev/null @@ -1,25 +0,0 @@ -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
diff --git a/.history/resources/views/auth/register.blade_20260329230743.php b/.history/resources/views/auth/register.blade_20260329230743.php deleted file mode 100644 index cb71346..0000000 --- a/.history/resources/views/auth/register.blade_20260329230743.php +++ /dev/null @@ -1,25 +0,0 @@ -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
diff --git a/.history/resources/views/auth/register.blade_20260329230745.php b/.history/resources/views/auth/register.blade_20260329230745.php deleted file mode 100644 index 5ff3f57..0000000 --- a/.history/resources/views/auth/register.blade_20260329230745.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230755.php b/.history/resources/views/auth/register.blade_20260329230755.php deleted file mode 100644 index 01ca516..0000000 --- a/.history/resources/views/auth/register.blade_20260329230755.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230757.php b/.history/resources/views/auth/register.blade_20260329230757.php deleted file mode 100644 index 5ff3f57..0000000 --- a/.history/resources/views/auth/register.blade_20260329230757.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230805.php b/.history/resources/views/auth/register.blade_20260329230805.php deleted file mode 100644 index 8e26e62..0000000 --- a/.history/resources/views/auth/register.blade_20260329230805.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230809.php b/.history/resources/views/auth/register.blade_20260329230809.php deleted file mode 100644 index bba95ef..0000000 --- a/.history/resources/views/auth/register.blade_20260329230809.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230811.php b/.history/resources/views/auth/register.blade_20260329230811.php deleted file mode 100644 index 9a4c5cf..0000000 --- a/.history/resources/views/auth/register.blade_20260329230811.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - < - - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230813.php b/.history/resources/views/auth/register.blade_20260329230813.php deleted file mode 100644 index bba95ef..0000000 --- a/.history/resources/views/auth/register.blade_20260329230813.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230818.php b/.history/resources/views/auth/register.blade_20260329230818.php deleted file mode 100644 index ddf2f46..0000000 --- a/.history/resources/views/auth/register.blade_20260329230818.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230820.php b/.history/resources/views/auth/register.blade_20260329230820.php deleted file mode 100644 index 84e3b30..0000000 --- a/.history/resources/views/auth/register.blade_20260329230820.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - - - @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230825.php b/.history/resources/views/auth/register.blade_20260329230825.php deleted file mode 100644 index bba95ef..0000000 --- a/.history/resources/views/auth/register.blade_20260329230825.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230826.php b/.history/resources/views/auth/register.blade_20260329230826.php deleted file mode 100644 index 9a4c5cf..0000000 --- a/.history/resources/views/auth/register.blade_20260329230826.php +++ /dev/null @@ -1,57 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - < - - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/register.blade_20260329230829.php b/.history/resources/views/auth/register.blade_20260329230829.php deleted file mode 100644 index bba95ef..0000000 --- a/.history/resources/views/auth/register.blade_20260329230829.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
-
- -
-
-

Register Penghuni

-
- -
- - @if($errors->any()) -
- {{ $errors->first() }} -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
- - - -
-
- -
-
-@endsection diff --git a/.history/resources/views/auth/reset.blade_20260417151554.php b/.history/resources/views/auth/reset.blade_20260417151554.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/auth/reset.blade_20260417151707.php b/.history/resources/views/auth/reset.blade_20260417151707.php deleted file mode 100644 index 685bbdf..0000000 --- a/.history/resources/views/auth/reset.blade_20260417151707.php +++ /dev/null @@ -1,10 +0,0 @@ -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152223.php b/.history/resources/views/auth/reset.blade_20260417152223.php deleted file mode 100644 index 01b4099..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152223.php +++ /dev/null @@ -1,12 +0,0 @@ - - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152227.php b/.history/resources/views/auth/reset.blade_20260417152227.php deleted file mode 100644 index 1b6c7c8..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152227.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends() - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152234.php b/.history/resources/views/auth/reset.blade_20260417152234.php deleted file mode 100644 index 644f8ef..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152234.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('lay') - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152235.php b/.history/resources/views/auth/reset.blade_20260417152235.php deleted file mode 100644 index f03404d..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152235.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('layouts.app') - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152239.php b/.history/resources/views/auth/reset.blade_20260417152239.php deleted file mode 100644 index 0f3e46a..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152239.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('layouts.') - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152240.php b/.history/resources/views/auth/reset.blade_20260417152240.php deleted file mode 100644 index ef00f79..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152240.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('layouts.auth') - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152242.php b/.history/resources/views/auth/reset.blade_20260417152242.php deleted file mode 100644 index 4dce790..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152242.php +++ /dev/null @@ -1,14 +0,0 @@ -@extends('layouts.auth') - - - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152244.php b/.history/resources/views/auth/reset.blade_20260417152244.php deleted file mode 100644 index 7dded19..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152244.php +++ /dev/null @@ -1,14 +0,0 @@ -@extends('layouts.auth') - -@sec - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152245.php b/.history/resources/views/auth/reset.blade_20260417152245.php deleted file mode 100644 index 7b43373..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152245.php +++ /dev/null @@ -1,14 +0,0 @@ -@extends('layouts.auth') - -@section() - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152246.php b/.history/resources/views/auth/reset.blade_20260417152246.php deleted file mode 100644 index 37df93c..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152246.php +++ /dev/null @@ -1,14 +0,0 @@ -@extends('layouts.auth') - -@section('') - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152254.php b/.history/resources/views/auth/reset.blade_20260417152254.php deleted file mode 100644 index fa0eaa5..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152254.php +++ /dev/null @@ -1,16 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsection - -
-@csrf - - - - - - - -
diff --git a/.history/resources/views/auth/reset.blade_20260417152300.php b/.history/resources/views/auth/reset.blade_20260417152300.php deleted file mode 100644 index 41d8d4c..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152300.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.auth') - -@section('content') - -@endsection diff --git a/.history/resources/views/auth/reset.blade_20260417152303.php b/.history/resources/views/auth/reset.blade_20260417152303.php deleted file mode 100644 index e8c315f..0000000 --- a/.history/resources/views/auth/reset.blade_20260417152303.php +++ /dev/null @@ -1,14 +0,0 @@ -@extends('layouts.auth') - -@section('content') -
- @csrf - - - - - - - -
-@endsection \ No newline at end of file diff --git a/.history/resources/views/components/footer.blade_20250815102405.php b/.history/resources/views/components/footer.blade_20250815102405.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/components/footer.blade_20250815102409.php b/.history/resources/views/components/footer.blade_20250815102409.php deleted file mode 100644 index 2e1647a..0000000 --- a/.history/resources/views/components/footer.blade_20250815102409.php +++ /dev/null @@ -1,7 +0,0 @@ -
-
- -
-
diff --git a/.history/resources/views/components/sidebar-user.blade_20260329214125.php b/.history/resources/views/components/sidebar-user.blade_20260329214125.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/components/sidebar-user.blade_20260329214342.php b/.history/resources/views/components/sidebar-user.blade_20260329214342.php deleted file mode 100644 index 2f18b46..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260329214342.php +++ /dev/null @@ -1,54 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260329232954.php b/.history/resources/views/components/sidebar-user.blade_20260329232954.php deleted file mode 100644 index bd1b5a6..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260329232954.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar-user.blade_20260329233226.php b/.history/resources/views/components/sidebar-user.blade_20260329233226.php deleted file mode 100644 index 558663a..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260329233226.php +++ /dev/null @@ -1,91 +0,0 @@ -!-- Sidebar User --> - diff --git a/.history/resources/views/components/sidebar-user.blade_20260329233227.php b/.history/resources/views/components/sidebar-user.blade_20260329233227.php deleted file mode 100644 index bd1b5a6..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260329233227.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331090743.php b/.history/resources/views/components/sidebar-user.blade_20260331090743.php deleted file mode 100644 index 1ec36ae..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331090743.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331101529.php b/.history/resources/views/components/sidebar-user.blade_20260331101529.php deleted file mode 100644 index 1c39e06..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331101529.php +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331103322.php b/.history/resources/views/components/sidebar-user.blade_20260331103322.php deleted file mode 100644 index 7bd3fbe..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331103322.php +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331103344.php b/.history/resources/views/components/sidebar-user.blade_20260331103344.php deleted file mode 100644 index 7bd3fbe..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331103344.php +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331103728.php b/.history/resources/views/components/sidebar-user.blade_20260331103728.php deleted file mode 100644 index 7bd3fbe..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331103728.php +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331103736.php b/.history/resources/views/components/sidebar-user.blade_20260331103736.php deleted file mode 100644 index 7bd3fbe..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331103736.php +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331103737.php b/.history/resources/views/components/sidebar-user.blade_20260331103737.php deleted file mode 100644 index 7bd3fbe..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331103737.php +++ /dev/null @@ -1,51 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331104845.php b/.history/resources/views/components/sidebar-user.blade_20260331104845.php deleted file mode 100644 index 34e4c89..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331104845.php +++ /dev/null @@ -1,77 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar-user.blade_20260331104926.php b/.history/resources/views/components/sidebar-user.blade_20260331104926.php deleted file mode 100644 index 4b85912..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260331104926.php +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar-user.blade_20260401105521.php b/.history/resources/views/components/sidebar-user.blade_20260401105521.php deleted file mode 100644 index 111b621..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260401105521.php +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar-user.blade_20260401105539.php b/.history/resources/views/components/sidebar-user.blade_20260401105539.php deleted file mode 100644 index e846a6e..0000000 --- a/.history/resources/views/components/sidebar-user.blade_20260401105539.php +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329194110.php b/.history/resources/views/components/sidebar.blade_20260329194110.php deleted file mode 100644 index f07dc7c..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329194110.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329194111.php b/.history/resources/views/components/sidebar.blade_20260329194111.php deleted file mode 100644 index a7f1e87..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329194111.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329194115.php b/.history/resources/views/components/sidebar.blade_20260329194115.php deleted file mode 100644 index f035ac3..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329194115.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329195002.php b/.history/resources/views/components/sidebar.blade_20260329195002.php deleted file mode 100644 index a574347..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329195002.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329195004.php b/.history/resources/views/components/sidebar.blade_20260329195004.php deleted file mode 100644 index 227fc04..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329195004.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214221.php b/.history/resources/views/components/sidebar.blade_20260329214221.php deleted file mode 100644 index 1a1040a..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214221.php +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214225.php b/.history/resources/views/components/sidebar.blade_20260329214225.php deleted file mode 100644 index 1a1040a..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214225.php +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214228.php b/.history/resources/views/components/sidebar.blade_20260329214228.php deleted file mode 100644 index a574347..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214228.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214230.php b/.history/resources/views/components/sidebar.blade_20260329214230.php deleted file mode 100644 index 227fc04..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214230.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214234.php b/.history/resources/views/components/sidebar.blade_20260329214234.php deleted file mode 100644 index 1a1040a..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214234.php +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214238.php b/.history/resources/views/components/sidebar.blade_20260329214238.php deleted file mode 100644 index 227fc04..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214238.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar.blade_20260329214241.php b/.history/resources/views/components/sidebar.blade_20260329214241.php deleted file mode 100644 index 1a1040a..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329214241.php +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260329233411.php b/.history/resources/views/components/sidebar.blade_20260329233411.php deleted file mode 100644 index 5bc1cfe..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329233411.php +++ /dev/null @@ -1,87 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260329233438.php b/.history/resources/views/components/sidebar.blade_20260329233438.php deleted file mode 100644 index 8555897..0000000 --- a/.history/resources/views/components/sidebar.blade_20260329233438.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141129.php b/.history/resources/views/components/sidebar.blade_20260401141129.php deleted file mode 100644 index 3d771a2..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141129.php +++ /dev/null @@ -1,88 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141131.php b/.history/resources/views/components/sidebar.blade_20260401141131.php deleted file mode 100644 index 8555897..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141131.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141135.php b/.history/resources/views/components/sidebar.blade_20260401141135.php deleted file mode 100644 index 90f4b9e..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141135.php +++ /dev/null @@ -1,86 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141136.php b/.history/resources/views/components/sidebar.blade_20260401141136.php deleted file mode 100644 index 8555897..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141136.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141144.php b/.history/resources/views/components/sidebar.blade_20260401141144.php deleted file mode 100644 index 913ebfc..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141144.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141145.php b/.history/resources/views/components/sidebar.blade_20260401141145.php deleted file mode 100644 index de39765..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141145.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141147.php b/.history/resources/views/components/sidebar.blade_20260401141147.php deleted file mode 100644 index e7380d3..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141147.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141154.php b/.history/resources/views/components/sidebar.blade_20260401141154.php deleted file mode 100644 index 72e010e..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141154.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141156.php b/.history/resources/views/components/sidebar.blade_20260401141156.php deleted file mode 100644 index 01efc1e..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141156.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141201.php b/.history/resources/views/components/sidebar.blade_20260401141201.php deleted file mode 100644 index 6dac692..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141201.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141203.php b/.history/resources/views/components/sidebar.blade_20260401141203.php deleted file mode 100644 index 3a571ce..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141203.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141510.php b/.history/resources/views/components/sidebar.blade_20260401141510.php deleted file mode 100644 index 7a5d215..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141510.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141512.php b/.history/resources/views/components/sidebar.blade_20260401141512.php deleted file mode 100644 index db477ce..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141512.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260401141539.php b/.history/resources/views/components/sidebar.blade_20260401141539.php deleted file mode 100644 index 3a571ce..0000000 --- a/.history/resources/views/components/sidebar.blade_20260401141539.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205346.php b/.history/resources/views/components/sidebar.blade_20260413205346.php deleted file mode 100644 index 13d5580..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205346.php +++ /dev/null @@ -1,84 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205352.php b/.history/resources/views/components/sidebar.blade_20260413205352.php deleted file mode 100644 index 443b99d..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205352.php +++ /dev/null @@ -1,149 +0,0 @@ - - - -/* ========================= */ -/* 🔥 SIDEBAR PREMIUM ADMIN */ -/* ========================= */ -.sidebar-premium { - background: linear-gradient(180deg, #1e3a8a, #4f46e5, #6366f1); - box-shadow: 5px 0 20px rgba(0,0,0,0.2); -} - -/* BRAND */ -.sidebar-brand { - font-weight: bold; - font-size: 18px; - color: white !important; -} - -.sidebar-brand-icon i { - font-size: 20px; -} - -/* MENU */ -.sidebar-premium .nav-link { - color: #e0e7ff !important; - font-weight: 500; - padding: 10px 15px; - border-radius: 10px; - margin: 5px 10px; - transition: 0.3s; -} - -/* ICON */ -.sidebar-premium .nav-link i { - margin-right: 10px; -} - -/* HOVER */ -.sidebar-premium .nav-link:hover { - background: rgba(255,255,255,0.1); - transform: translateX(5px); - color: #ffffff !important; -} - -/* ACTIVE */ -.sidebar-premium .nav-item.active .nav-link { - background: linear-gradient(135deg, #22c55e, #4ade80); - color: white !important; - box-shadow: 0 5px 15px rgba(0,0,0,0.2); -} - -/* HEADING */ -.sidebar-heading { - color: #c7d2fe; - font-size: 12px; - margin-left: 15px; -} - -/* LOGOUT */ -.logout-admin { - color: #fecaca !important; -} - -.logout-admin:hover { - color: #ffffff !important; - background: rgba(255,0,0,0.2); -} diff --git a/.history/resources/views/components/sidebar.blade_20260413205357.php b/.history/resources/views/components/sidebar.blade_20260413205357.php deleted file mode 100644 index 3a571ce..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205357.php +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205359.php b/.history/resources/views/components/sidebar.blade_20260413205359.php deleted file mode 100644 index 21d9a83..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205359.php +++ /dev/null @@ -1,86 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205403.php b/.history/resources/views/components/sidebar.blade_20260413205403.php deleted file mode 100644 index 73e25b8..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205403.php +++ /dev/null @@ -1,151 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205530.php b/.history/resources/views/components/sidebar.blade_20260413205530.php deleted file mode 100644 index 73e25b8..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205530.php +++ /dev/null @@ -1,151 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205550.php b/.history/resources/views/components/sidebar.blade_20260413205550.php deleted file mode 100644 index bfe4a8b..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205550.php +++ /dev/null @@ -1,150 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205556.php b/.history/resources/views/components/sidebar.blade_20260413205556.php deleted file mode 100644 index 99f665f..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205556.php +++ /dev/null @@ -1,154 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413205606.php b/.history/resources/views/components/sidebar.blade_20260413205606.php deleted file mode 100644 index e00c877..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413205606.php +++ /dev/null @@ -1,151 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210014.php b/.history/resources/views/components/sidebar.blade_20260413210014.php deleted file mode 100644 index 3a1f88b..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210014.php +++ /dev/null @@ -1,171 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210020.php b/.history/resources/views/components/sidebar.blade_20260413210020.php deleted file mode 100644 index 7ce5bcc..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210020.php +++ /dev/null @@ -1,172 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210022.php b/.history/resources/views/components/sidebar.blade_20260413210022.php deleted file mode 100644 index b6b3e6a..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210022.php +++ /dev/null @@ -1,177 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210036.php b/.history/resources/views/components/sidebar.blade_20260413210036.php deleted file mode 100644 index aae0d21..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210036.php +++ /dev/null @@ -1,182 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210053.php b/.history/resources/views/components/sidebar.blade_20260413210053.php deleted file mode 100644 index f3bfdf3..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210053.php +++ /dev/null @@ -1,153 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210233.php b/.history/resources/views/components/sidebar.blade_20260413210233.php deleted file mode 100644 index 7866ad5..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210233.php +++ /dev/null @@ -1,182 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210239.php b/.history/resources/views/components/sidebar.blade_20260413210239.php deleted file mode 100644 index fc02d07..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210239.php +++ /dev/null @@ -1,194 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210244.php b/.history/resources/views/components/sidebar.blade_20260413210244.php deleted file mode 100644 index 1e961f2..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210244.php +++ /dev/null @@ -1,199 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210248.php b/.history/resources/views/components/sidebar.blade_20260413210248.php deleted file mode 100644 index f3f54cb..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210248.php +++ /dev/null @@ -1,204 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar.blade_20260413210302.php b/.history/resources/views/components/sidebar.blade_20260413210302.php deleted file mode 100644 index f3bfdf3..0000000 --- a/.history/resources/views/components/sidebar.blade_20260413210302.php +++ /dev/null @@ -1,153 +0,0 @@ - - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416105019.php b/.history/resources/views/components/sidebar_rt.blade_20260416105019.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416105028.php b/.history/resources/views/components/sidebar_rt.blade_20260416105028.php deleted file mode 100644 index 1584fc4..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416105028.php +++ /dev/null @@ -1,62 +0,0 @@ - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416105244.php b/.history/resources/views/components/sidebar_rt.blade_20260416105244.php deleted file mode 100644 index e1eb591..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416105244.php +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416105250.php b/.history/resources/views/components/sidebar_rt.blade_20260416105250.php deleted file mode 100644 index 06da337..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416105250.php +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416105311.php b/.history/resources/views/components/sidebar_rt.blade_20260416105311.php deleted file mode 100644 index d690e80..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416105311.php +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416105325.php b/.history/resources/views/components/sidebar_rt.blade_20260416105325.php deleted file mode 100644 index 634e3b9..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416105325.php +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416121034.php b/.history/resources/views/components/sidebar_rt.blade_20260416121034.php deleted file mode 100644 index 1a4cf61..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416121034.php +++ /dev/null @@ -1,74 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416121430.php b/.history/resources/views/components/sidebar_rt.blade_20260416121430.php deleted file mode 100644 index 0dab62a..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416121430.php +++ /dev/null @@ -1,81 +0,0 @@ - - - \ No newline at end of file diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416164927.php b/.history/resources/views/components/sidebar_rt.blade_20260416164927.php deleted file mode 100644 index e91e05f..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416164927.php +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416170114.php b/.history/resources/views/components/sidebar_rt.blade_20260416170114.php deleted file mode 100644 index 7e0c2f9..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416170114.php +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416170115.php b/.history/resources/views/components/sidebar_rt.blade_20260416170115.php deleted file mode 100644 index 1fc451b..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416170115.php +++ /dev/null @@ -1,81 +0,0 @@ - - - \ No newline at end of file diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416171547.php b/.history/resources/views/components/sidebar_rt.blade_20260416171547.php deleted file mode 100644 index af4777f..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416171547.php +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/.history/resources/views/components/sidebar_rt.blade_20260416171551.php b/.history/resources/views/components/sidebar_rt.blade_20260416171551.php deleted file mode 100644 index da9321f..0000000 --- a/.history/resources/views/components/sidebar_rt.blade_20260416171551.php +++ /dev/null @@ -1,82 +0,0 @@ - - - diff --git a/.history/resources/views/components/topbar.blade_20250815102246.php b/.history/resources/views/components/topbar.blade_20250815102246.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/components/topbar.blade_20250815102250.php b/.history/resources/views/components/topbar.blade_20250815102250.php deleted file mode 100644 index c30f752..0000000 --- a/.history/resources/views/components/topbar.blade_20250815102250.php +++ /dev/null @@ -1,201 +0,0 @@ - diff --git a/.history/resources/views/components/topbar.blade_20250815132344.php b/.history/resources/views/components/topbar.blade_20250815132344.php deleted file mode 100644 index dab6bb6..0000000 --- a/.history/resources/views/components/topbar.blade_20250815132344.php +++ /dev/null @@ -1,201 +0,0 @@ - diff --git a/.history/resources/views/components/topbar.blade_20250815132346.php b/.history/resources/views/components/topbar.blade_20250815132346.php deleted file mode 100644 index 46fb5ac..0000000 --- a/.history/resources/views/components/topbar.blade_20250815132346.php +++ /dev/null @@ -1,201 +0,0 @@ - diff --git a/.history/resources/views/dashboard.blade_20250815102838.php b/.history/resources/views/dashboard.blade_20250815102838.php deleted file mode 100644 index c39470e..0000000 --- a/.history/resources/views/dashboard.blade_20250815102838.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Blank Page

-
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819084906.php b/.history/resources/views/dashboard.blade_20250819084906.php deleted file mode 100644 index 1317877..0000000 --- a/.history/resources/views/dashboard.blade_20250819084906.php +++ /dev/null @@ -1,737 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- - - - - - -
- - -
- - - - - - -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
- - -
- - - -
-
- -
-
- - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -@endsection diff --git a/.history/resources/views/dashboard.blade_20250819084922.php b/.history/resources/views/dashboard.blade_20250819084922.php deleted file mode 100644 index 50a15c8..0000000 --- a/.history/resources/views/dashboard.blade_20250819084922.php +++ /dev/null @@ -1,720 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- - - - - - -
- - -
- - - - - - -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
- - -
- - - -
-
- -
-
- - -
- - -
- - - - - - - - - - - -@endsection diff --git a/.history/resources/views/dashboard.blade_20250819084923.php b/.history/resources/views/dashboard.blade_20250819084923.php deleted file mode 100644 index 57516d3..0000000 --- a/.history/resources/views/dashboard.blade_20250819084923.php +++ /dev/null @@ -1,719 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- - - - - - -
- - -
- - - - - - -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
- - -
- - - -
-
- -
-
- - -
- - -
- - - - - - - - - - -@endsection diff --git a/.history/resources/views/dashboard.blade_20250819084935.php b/.history/resources/views/dashboard.blade_20250819084935.php deleted file mode 100644 index 9261bdf..0000000 --- a/.history/resources/views/dashboard.blade_20250819084935.php +++ /dev/null @@ -1,718 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- - - - - -
- - -
- - - - - - -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
- - -
- - - -
-
- -
-
- - -
- - -
- - - - - - - - - - -@endsection diff --git a/.history/resources/views/dashboard.blade_20250819084941.php b/.history/resources/views/dashboard.blade_20250819084941.php deleted file mode 100644 index 50a15c8..0000000 --- a/.history/resources/views/dashboard.blade_20250819084941.php +++ /dev/null @@ -1,720 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- - - - - - -
- - -
- - - - - - -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
- - -
- - - -
-
- -
-
- - -
- - -
- - - - - - - - - - - -@endsection diff --git a/.history/resources/views/dashboard.blade_20250819084945.php b/.history/resources/views/dashboard.blade_20250819084945.php deleted file mode 100644 index c39470e..0000000 --- a/.history/resources/views/dashboard.blade_20250819084945.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Blank Page

-
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819085052.php b/.history/resources/views/dashboard.blade_20250819085052.php deleted file mode 100644 index 6091508..0000000 --- a/.history/resources/views/dashboard.blade_20250819085052.php +++ /dev/null @@ -1,332 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819092806.php b/.history/resources/views/dashboard.blade_20250819092806.php deleted file mode 100644 index 20dba61..0000000 --- a/.history/resources/views/dashboard.blade_20250819092806.php +++ /dev/null @@ -1,20 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Dashboard

- - -
- -
-
-
- Welcome to the Green View Dashboard! -
-
-
-
-
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819093041.php b/.history/resources/views/dashboard.blade_20250819093041.php deleted file mode 100644 index 685d504..0000000 --- a/.history/resources/views/dashboard.blade_20250819093041.php +++ /dev/null @@ -1,35 +0,0 @@ -@extends('layouts.app') - - @section('content') --
-+
-+ -+

Dashboard

- -- --

Dashboard

-- -- --
-- -- --
--
--
-- Welcome to the Green View Dashboard! --
-+ -+
-+ -+
-+
-+
-+ Welcome to the Green View Dashboard! -
-
-- -
-- -- -
--@endsection diff --git a/.history/resources/views/dashboard.blade_20250819093056.php b/.history/resources/views/dashboard.blade_20250819093056.php deleted file mode 100644 index a4efdbf..0000000 --- a/.history/resources/views/dashboard.blade_20250819093056.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Dashboard

- - -
- -
-
-
- Welcome to the Green View Dashboard! -
-
-
-
-
-@endsection -
- - -
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819093110.php b/.history/resources/views/dashboard.blade_20250819093110.php deleted file mode 100644 index 387f140..0000000 --- a/.history/resources/views/dashboard.blade_20250819093110.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Dashboard

- - -
- -
-
-
- Welcome to the Green View Dashboard! -
-
-
-
-
- -
- - -
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819093112.php b/.history/resources/views/dashboard.blade_20250819093112.php deleted file mode 100644 index 20dba61..0000000 --- a/.history/resources/views/dashboard.blade_20250819093112.php +++ /dev/null @@ -1,20 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Dashboard

- - -
- -
-
-
- Welcome to the Green View Dashboard! -
-
-
-
-
-@endsection diff --git a/.history/resources/views/dashboard.blade_20250819093338.php b/.history/resources/views/dashboard.blade_20250819093338.php deleted file mode 100644 index 7ac7cb2..0000000 --- a/.history/resources/views/dashboard.blade_20250819093338.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/emails/otp.blade_20260417151014.php b/.history/resources/views/emails/otp.blade_20260417151014.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/emails/otp.blade_20260417151021.php b/.history/resources/views/emails/otp.blade_20260417151021.php deleted file mode 100644 index f68d842..0000000 --- a/.history/resources/views/emails/otp.blade_20260417151021.php +++ /dev/null @@ -1,6 +0,0 @@ -

Reset Password

-

Kode OTP kamu:

- -

{{ $otp }}

- -

Berlaku 5 menit

diff --git a/.history/resources/views/emails/otp.blade_20260417153609.php b/.history/resources/views/emails/otp.blade_20260417153609.php deleted file mode 100644 index a9fb0a3..0000000 --- a/.history/resources/views/emails/otp.blade_20260417153609.php +++ /dev/null @@ -1,7 +0,0 @@ -

Reset Password

- -

Kode OTP kamu:

- -

{{ $otp }}

- -

Berlaku 5 menit

diff --git a/.history/resources/views/emails/otp.blade_20260417154138.php b/.history/resources/views/emails/otp.blade_20260417154138.php deleted file mode 100644 index a813019..0000000 --- a/.history/resources/views/emails/otp.blade_20260417154138.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - OTP Reset Password - - - -

Reset Password

- -

Kode OTP kamu:

- -

{{ $otp }}

- -

Berlaku 5 menit

- - - diff --git a/.history/resources/views/emails/pengaduan.blade_20260413212544.php b/.history/resources/views/emails/pengaduan.blade_20260413212544.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/emails/pengaduan.blade_20260413212554.php b/.history/resources/views/emails/pengaduan.blade_20260413212554.php deleted file mode 100644 index e619d95..0000000 --- a/.history/resources/views/emails/pengaduan.blade_20260413212554.php +++ /dev/null @@ -1,9 +0,0 @@ -

Pengaduan Anda Ditanggapi

- -

Status: {{ $layanan->status }}

- -

Tanggapan Admin:
-{{ $layanan->tanggapan_admin }} -

- -

Terima kasih 🙏

diff --git a/.history/resources/views/emails/pengaduan.blade_20260414141746.php b/.history/resources/views/emails/pengaduan.blade_20260414141746.php deleted file mode 100644 index 05e970b..0000000 --- a/.history/resources/views/emails/pengaduan.blade_20260414141746.php +++ /dev/null @@ -1,76 +0,0 @@ - - - - - Notifikasi Pengaduan - - - -
- - -
-

🏡 GREEN VIEW

- Sistem Informasi Perumahan -
- - -
- -

- 📢 Pengaduan Anda Telah Ditanggapi -

- -

- Halo, {{ $layanan->penghuni->nama ?? 'Penghuni' }} 👋 -

- -

- Pengaduan yang Anda kirim telah mendapatkan tanggapan dari admin. -

- - -
- - Status: - {{ ucfirst($layanan->status) }} -
- - -
- 💬 Tanggapan Admin: -
- {{ $layanan->tanggapan_admin }} -
-
- - -

- Silakan cek aplikasi untuk informasi lebih lanjut. -

- - - - -
- - -
- © {{ date('Y') }} Green View - Sistem Manajemen Perumahan -
- -
- - - diff --git a/.history/resources/views/home.blade_20250815102542.php b/.history/resources/views/home.blade_20250815102542.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/home.blade_20250815102546.php b/.history/resources/views/home.blade_20250815102546.php deleted file mode 100644 index 41fa67a..0000000 --- a/.history/resources/views/home.blade_20250815102546.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102612.php b/.history/resources/views/home.blade_20250815102612.php deleted file mode 100644 index 544013b..0000000 --- a/.history/resources/views/home.blade_20250815102612.php +++ /dev/null @@ -1,5 +0,0 @@ -
- - -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102614.php b/.history/resources/views/home.blade_20250815102614.php deleted file mode 100644 index 41fa67a..0000000 --- a/.history/resources/views/home.blade_20250815102614.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102616.php b/.history/resources/views/home.blade_20250815102616.php deleted file mode 100644 index eb5702c..0000000 --- a/.history/resources/views/home.blade_20250815102616.php +++ /dev/null @@ -1,5 +0,0 @@ -
- - -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102617.php b/.history/resources/views/home.blade_20250815102617.php deleted file mode 100644 index 41fa67a..0000000 --- a/.history/resources/views/home.blade_20250815102617.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102621.php b/.history/resources/views/home.blade_20250815102621.php deleted file mode 100644 index 435ca6d..0000000 --- a/.history/resources/views/home.blade_20250815102621.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102623.php b/.history/resources/views/home.blade_20250815102623.php deleted file mode 100644 index a524fed..0000000 --- a/.history/resources/views/home.blade_20250815102623.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102626.php b/.history/resources/views/home.blade_20250815102626.php deleted file mode 100644 index 902f058..0000000 --- a/.history/resources/views/home.blade_20250815102626.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102628.php b/.history/resources/views/home.blade_20250815102628.php deleted file mode 100644 index 17cea5a..0000000 --- a/.history/resources/views/home.blade_20250815102628.php +++ /dev/null @@ -1,6 +0,0 @@ -
- - -

Blank Page

- -
diff --git a/.history/resources/views/home.blade_20250815102630.php b/.history/resources/views/home.blade_20250815102630.php deleted file mode 100644 index 7f6bbbe..0000000 --- a/.history/resources/views/home.blade_20250815102630.php +++ /dev/null @@ -1,5 +0,0 @@ -
- - -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102632.php b/.history/resources/views/home.blade_20250815102632.php deleted file mode 100644 index ddaf372..0000000 --- a/.history/resources/views/home.blade_20250815102632.php +++ /dev/null @@ -1,4 +0,0 @@ -
-= -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102634.php b/.history/resources/views/home.blade_20250815102634.php deleted file mode 100644 index f9384f8..0000000 --- a/.history/resources/views/home.blade_20250815102634.php +++ /dev/null @@ -1,4 +0,0 @@ -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102759.php b/.history/resources/views/home.blade_20250815102759.php deleted file mode 100644 index 40c94bb..0000000 --- a/.history/resources/views/home.blade_20250815102759.php +++ /dev/null @@ -1,5 +0,0 @@ - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102801.php b/.history/resources/views/home.blade_20250815102801.php deleted file mode 100644 index 5010d51..0000000 --- a/.history/resources/views/home.blade_20250815102801.php +++ /dev/null @@ -1,4 +0,0 @@ -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102803.php b/.history/resources/views/home.blade_20250815102803.php deleted file mode 100644 index 67ae3fb..0000000 --- a/.history/resources/views/home.blade_20250815102803.php +++ /dev/null @@ -1,4 +0,0 @@ -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102804.php b/.history/resources/views/home.blade_20250815102804.php deleted file mode 100644 index 79b7ab5..0000000 --- a/.history/resources/views/home.blade_20250815102804.php +++ /dev/null @@ -1,5 +0,0 @@ - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102809.php b/.history/resources/views/home.blade_20250815102809.php deleted file mode 100644 index e7129a5..0000000 --- a/.history/resources/views/home.blade_20250815102809.php +++ /dev/null @@ -1,6 +0,0 @@ - - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102820.php b/.history/resources/views/home.blade_20250815102820.php deleted file mode 100644 index 21ad2e5..0000000 --- a/.history/resources/views/home.blade_20250815102820.php +++ /dev/null @@ -1,6 +0,0 @@ -@ - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102823.php b/.history/resources/views/home.blade_20250815102823.php deleted file mode 100644 index b7e0e12..0000000 --- a/.history/resources/views/home.blade_20250815102823.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends() - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102826.php b/.history/resources/views/home.blade_20250815102826.php deleted file mode 100644 index 9adafe3..0000000 --- a/.history/resources/views/home.blade_20250815102826.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.app') - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102828.php b/.history/resources/views/home.blade_20250815102828.php deleted file mode 100644 index 396f049..0000000 --- a/.history/resources/views/home.blade_20250815102828.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - - -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102830.php b/.history/resources/views/home.blade_20250815102830.php deleted file mode 100644 index bedd850..0000000 --- a/.history/resources/views/home.blade_20250815102830.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@ -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102833.php b/.history/resources/views/home.blade_20250815102833.php deleted file mode 100644 index be8be3a..0000000 --- a/.history/resources/views/home.blade_20250815102833.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Blank Page

-
diff --git a/.history/resources/views/home.blade_20250815102836.php b/.history/resources/views/home.blade_20250815102836.php deleted file mode 100644 index 0f0f77f..0000000 --- a/.history/resources/views/home.blade_20250815102836.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Blank Page

-
-@e diff --git a/.history/resources/views/home.blade_20250815102837.php b/.history/resources/views/home.blade_20250815102837.php deleted file mode 100644 index af0001c..0000000 --- a/.history/resources/views/home.blade_20250815102837.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Blank Page

-
-@end diff --git a/.history/resources/views/home.blade_20250815102839.php b/.history/resources/views/home.blade_20250815102839.php deleted file mode 100644 index c39470e..0000000 --- a/.history/resources/views/home.blade_20250815102839.php +++ /dev/null @@ -1,8 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Blank Page

-
-@endsection diff --git a/.history/resources/views/home.blade_20250819085924.php b/.history/resources/views/home.blade_20250819085924.php deleted file mode 100644 index f313fea..0000000 --- a/.history/resources/views/home.blade_20250819085924.php +++ /dev/null @@ -1,331 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
-@endsection diff --git a/.history/resources/views/home.blade_20250819085932.php b/.history/resources/views/home.blade_20250819085932.php deleted file mode 100644 index e189bc0..0000000 --- a/.history/resources/views/home.blade_20250819085932.php +++ /dev/null @@ -1,329 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - - - - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
-
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -@endsection diff --git a/.history/resources/views/home.blade_20250819085946.php b/.history/resources/views/home.blade_20250819085946.php deleted file mode 100644 index 6091508..0000000 --- a/.history/resources/views/home.blade_20250819085946.php +++ /dev/null @@ -1,332 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -
-

Dashboard

- Generate Report -
- - -
- - -
-
-
-
-
-
- Earnings (Monthly)
-
$40,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Earnings (Annual)
-
$215,000
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
Tasks -
-
-
-
50%
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Pending Requests
-
18
-
-
- -
-
-
-
-
-
- - - -
- - -
-
- -
-
Earnings Overview
- -
- -
-
- -
-
-
-
- - -
-
- -
-
Revenue Sources
- -
- -
-
- -
-
- - Direct - - - Social - - - Referral - -
-
-
-
-
- - -
- - -
- - -
-
-
Projects
-
-
-

Server Migration 20%

-
-
-
-

Sales Tracking 40%

-
-
-
-

Customer Database 60%

-
-
-
-

Payout Details 80%

-
-
-
-

Account Setup Complete!

-
-
-
-
-
- - -
-
-
-
- Primary -
#4e73df
-
-
-
-
-
-
- Success -
#1cc88a
-
-
-
-
-
-
- Info -
#36b9cc
-
-
-
-
-
-
- Warning -
#f6c23e
-
-
-
-
-
-
- Danger -
#e74a3b
-
-
-
-
-
-
- Secondary -
#858796
-
-
-
-
-
-
- Light -
#f8f9fc
-
-
-
-
-
-
- Dark -
#5a5c69
-
-
-
-
- -
- -
- - -
-
-
Illustrations
-
-
-
- ... -
-

Add some quality, svg illustrations to your project courtesy of unDraw, a - constantly updated collection of beautiful svg images that you can use - completely free and without attribution!

- Browse Illustrations on - unDraw → -
-
- - -
-
-
Development Approach
-
-
-

SB Admin 2 makes extensive use of Bootstrap 4 utility classes in order to reduce - CSS bloat and poor page performance. Custom CSS classes are used to create - custom components and custom utility classes.

-

Before working with this theme, you should become familiar with the - Bootstrap framework, especially the utility classes.

-
-
- -
-
- -
-@endsection diff --git a/.history/resources/views/home.blade_20250819090249.php b/.history/resources/views/home.blade_20250819090249.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/home.blade_20250819090249.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819090251.php b/.history/resources/views/home.blade_20250819090251.php deleted file mode 100644 index 4f5e3f3..0000000 --- a/.history/resources/views/home.blade_20250819090251.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819090254.php b/.history/resources/views/home.blade_20250819090254.php deleted file mode 100644 index a5dfd62..0000000 --- a/.history/resources/views/home.blade_20250819090254.php +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
- Welcome to the Green View Dashboard! -
-
-
- -
- -@endsection diff --git a/.history/resources/views/home.blade_20250819090554.php b/.history/resources/views/home.blade_20250819090554.php deleted file mode 100644 index 405fb68..0000000 --- a/.history/resources/views/home.blade_20250819090554.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -@endsection diff --git a/.history/resources/views/home.blade_20250819090557.php b/.history/resources/views/home.blade_20250819090557.php deleted file mode 100644 index a5dfd62..0000000 --- a/.history/resources/views/home.blade_20250819090557.php +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
- Welcome to the Green View Dashboard! -
-
-
- -
- -@endsection diff --git a/.history/resources/views/home.blade_20250819090604.php b/.history/resources/views/home.blade_20250819090604.php deleted file mode 100644 index d981e6d..0000000 --- a/.history/resources/views/home.blade_20250819090604.php +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
- Welcome to the Green View Dashboard! -
-
-
- -
- -@endsection diff --git a/.history/resources/views/home.blade_20250819090606.php b/.history/resources/views/home.blade_20250819090606.php deleted file mode 100644 index 2823e22..0000000 --- a/.history/resources/views/home.blade_20250819090606.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819090611.php b/.history/resources/views/home.blade_20250819090611.php deleted file mode 100644 index 4684057..0000000 --- a/.history/resources/views/home.blade_20250819090611.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -@endsection diff --git a/.history/resources/views/home.blade_20250819090612.php b/.history/resources/views/home.blade_20250819090612.php deleted file mode 100644 index 405fb68..0000000 --- a/.history/resources/views/home.blade_20250819090612.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -@endsection diff --git a/.history/resources/views/home.blade_20250819090616.php b/.history/resources/views/home.blade_20250819090616.php deleted file mode 100644 index 4684057..0000000 --- a/.history/resources/views/home.blade_20250819090616.php +++ /dev/null @@ -1,6 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -@endsection diff --git a/.history/resources/views/home.blade_20250819090619.php b/.history/resources/views/home.blade_20250819090619.php deleted file mode 100644 index d981e6d..0000000 --- a/.history/resources/views/home.blade_20250819090619.php +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
- Welcome to the Green View Dashboard! -
-
-
- -
- -@endsection diff --git a/.history/resources/views/home.blade_20250819091136.php b/.history/resources/views/home.blade_20250819091136.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/home.blade_20250819091136.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091139.php b/.history/resources/views/home.blade_20250819091139.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/home.blade_20250819091139.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091141.php b/.history/resources/views/home.blade_20250819091141.php deleted file mode 100644 index 4f5e3f3..0000000 --- a/.history/resources/views/home.blade_20250819091141.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091145.php b/.history/resources/views/home.blade_20250819091145.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/home.blade_20250819091145.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091149.php b/.history/resources/views/home.blade_20250819091149.php deleted file mode 100644 index a02fb03..0000000 --- a/.history/resources/views/home.blade_20250819091149.php +++ /dev/null @@ -1,16 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - - -
- -@endsection diff --git a/.history/resources/views/home.blade_20250819091153.php b/.history/resources/views/home.blade_20250819091153.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/home.blade_20250819091153.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091154.php b/.history/resources/views/home.blade_20250819091154.php deleted file mode 100644 index 3a85252..0000000 --- a/.history/resources/views/home.blade_20250819091154.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091157.php b/.history/resources/views/home.blade_20250819091157.php deleted file mode 100644 index 3a9fb35..0000000 --- a/.history/resources/views/home.blade_20250819091157.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
- Welcome to the Green View Dashboard! -
-
-
- -
- - -
-@endsection diff --git a/.history/resources/views/home.blade_20250819091442.php b/.history/resources/views/home.blade_20250819091442.php deleted file mode 100644 index ffa97e5..0000000 --- a/.history/resources/views/home.blade_20250819091442.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('layouts.app') - -@section('content') - -@endsection diff --git a/.history/resources/views/home.blade_20250819091444.php b/.history/resources/views/home.blade_20250819091444.php deleted file mode 100644 index fba286c..0000000 --- a/.history/resources/views/home.blade_20250819091444.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') - -@section('content') -@endsection diff --git a/.history/resources/views/home.blade_20250819091447.php b/.history/resources/views/home.blade_20250819091447.php deleted file mode 100644 index 3a9fb35..0000000 --- a/.history/resources/views/home.blade_20250819091447.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
- Welcome to the Green View Dashboard! -
-
-
- -
- - -
-@endsection diff --git a/.history/resources/views/layouts/app.blade_20260329231746.php b/.history/resources/views/layouts/app.blade_20260329231746.php deleted file mode 100644 index 3f5ab19..0000000 --- a/.history/resources/views/layouts/app.blade_20260329231746.php +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - @if(auth()->user()->role == 'admin') - @include('components.sidebar') -@else - @include('components.sidebar-user') -@endif - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260329231751.php b/.history/resources/views/layouts/app.blade_20260329231751.php deleted file mode 100644 index 235bd88..0000000 --- a/.history/resources/views/layouts/app.blade_20260329231751.php +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260329231846.php b/.history/resources/views/layouts/app.blade_20260329231846.php deleted file mode 100644 index 325c37c..0000000 --- a/.history/resources/views/layouts/app.blade_20260329231846.php +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260329232645.php b/.history/resources/views/layouts/app.blade_20260329232645.php deleted file mode 100644 index 9998f2b..0000000 --- a/.history/resources/views/layouts/app.blade_20260329232645.php +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - <@if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif -@endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260329232649.php b/.history/resources/views/layouts/app.blade_20260329232649.php deleted file mode 100644 index 3bc47ac..0000000 --- a/.history/resources/views/layouts/app.blade_20260329232649.php +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - <@if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260329233335.php b/.history/resources/views/layouts/app.blade_20260329233335.php deleted file mode 100644 index b5bfa6b..0000000 --- a/.history/resources/views/layouts/app.blade_20260329233335.php +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331101601.php b/.history/resources/views/layouts/app.blade_20260331101601.php deleted file mode 100644 index 8117150..0000000 --- a/.history/resources/views/layouts/app.blade_20260331101601.php +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -.nav-link { - transition: all 0.3s ease; -} - -.nav-link:hover { - transform: scale(1.1); - color: #0d6efd !important; -} - -.nav-link i { - display: block; -} diff --git a/.history/resources/views/layouts/app.blade_20260331101602.php b/.history/resources/views/layouts/app.blade_20260331101602.php deleted file mode 100644 index a75939d..0000000 --- a/.history/resources/views/layouts/app.blade_20260331101602.php +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331101604.php b/.history/resources/views/layouts/app.blade_20260331101604.php deleted file mode 100644 index 758e541..0000000 --- a/.history/resources/views/layouts/app.blade_20260331101604.php +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -sec diff --git a/.history/resources/views/layouts/app.blade_20260331101608.php b/.history/resources/views/layouts/app.blade_20260331101608.php deleted file mode 100644 index 69a5ef0..0000000 --- a/.history/resources/views/layouts/app.blade_20260331101608.php +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
- .nav-link { - transition: all 0.3s ease; -} - -.nav-link:hover { - transform: scale(1.1); - color: #0d6efd !important; -} - -.nav-link i { - display: block; -} -
diff --git a/.history/resources/views/layouts/app.blade_20260331101609.php b/.history/resources/views/layouts/app.blade_20260331101609.php deleted file mode 100644 index 464bdd4..0000000 --- a/.history/resources/views/layouts/app.blade_20260331101609.php +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
- -
diff --git a/.history/resources/views/layouts/app.blade_20260331101617.php b/.history/resources/views/layouts/app.blade_20260331101617.php deleted file mode 100644 index a75939d..0000000 --- a/.history/resources/views/layouts/app.blade_20260331101617.php +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331103447.php b/.history/resources/views/layouts/app.blade_20260331103447.php deleted file mode 100644 index 62f2667..0000000 --- a/.history/resources/views/layouts/app.blade_20260331103447.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331103708.php b/.history/resources/views/layouts/app.blade_20260331103708.php deleted file mode 100644 index b5bfa6b..0000000 --- a/.history/resources/views/layouts/app.blade_20260331103708.php +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331103716.php b/.history/resources/views/layouts/app.blade_20260331103716.php deleted file mode 100644 index 62f2667..0000000 --- a/.history/resources/views/layouts/app.blade_20260331103716.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331104702.php b/.history/resources/views/layouts/app.blade_20260331104702.php deleted file mode 100644 index a340f3b..0000000 --- a/.history/resources/views/layouts/app.blade_20260331104702.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331104742.php b/.history/resources/views/layouts/app.blade_20260331104742.php deleted file mode 100644 index 62f2667..0000000 --- a/.history/resources/views/layouts/app.blade_20260331104742.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331104755.php b/.history/resources/views/layouts/app.blade_20260331104755.php deleted file mode 100644 index 88f8881..0000000 --- a/.history/resources/views/layouts/app.blade_20260331104755.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - {{-- @if(auth()->check()) - @if(auth()->user()->role == 'admin') --}} - @include('components.sidebar') - @else - @include('components.sidebar-user') - @endif - @endif - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331104801.php b/.history/resources/views/layouts/app.blade_20260331104801.php deleted file mode 100644 index d414bf6..0000000 --- a/.history/resources/views/layouts/app.blade_20260331104801.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - {{-- @if(auth()->check()) - @if(auth()->user()->role == 'admin') --}} - @include('components.sidebar') - {{-- @else - @include('components.sidebar-user') - @endif - @endif --}} - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105425.php b/.history/resources/views/layouts/app.blade_20260331105425.php deleted file mode 100644 index 2053c8c..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105425.php +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif -@endif - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105427.php b/.history/resources/views/layouts/app.blade_20260331105427.php deleted file mode 100644 index d414bf6..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105427.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - {{-- @if(auth()->check()) - @if(auth()->user()->role == 'admin') --}} - @include('components.sidebar') - {{-- @else - @include('components.sidebar-user') - @endif - @endif --}} - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105429.php b/.history/resources/views/layouts/app.blade_20260331105429.php deleted file mode 100644 index 2053c8c..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105429.php +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif -@endif - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105432.php b/.history/resources/views/layouts/app.blade_20260331105432.php deleted file mode 100644 index a4c5284..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105432.php +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105631.php b/.history/resources/views/layouts/app.blade_20260331105631.php deleted file mode 100644 index 8501b16..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105631.php +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - -@endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105655.php b/.history/resources/views/layouts/app.blade_20260331105655.php deleted file mode 100644 index c7869fb..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105655.php +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - -@endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105708.php b/.history/resources/views/layouts/app.blade_20260331105708.php deleted file mode 100644 index 8501b16..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105708.php +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - -@endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105723.php b/.history/resources/views/layouts/app.blade_20260331105723.php deleted file mode 100644 index dccba53..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105723.php +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - -@endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331105859.php b/.history/resources/views/layouts/app.blade_20260331105859.php deleted file mode 100644 index 759e958..0000000 --- a/.history/resources/views/layouts/app.blade_20260331105859.php +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112838.php b/.history/resources/views/layouts/app.blade_20260331112838.php deleted file mode 100644 index 7a5763a..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112838.php +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112843.php b/.history/resources/views/layouts/app.blade_20260331112843.php deleted file mode 100644 index 261cd6d..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112843.php +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112844.php b/.history/resources/views/layouts/app.blade_20260331112844.php deleted file mode 100644 index 7a5763a..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112844.php +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112850.php b/.history/resources/views/layouts/app.blade_20260331112850.php deleted file mode 100644 index 357b38b..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112850.php +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112859.php b/.history/resources/views/layouts/app.blade_20260331112859.php deleted file mode 100644 index 1b6b2ca..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112859.php +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112903.php b/.history/resources/views/layouts/app.blade_20260331112903.php deleted file mode 100644 index 6fa9a5d..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112903.php +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112916.php b/.history/resources/views/layouts/app.blade_20260331112916.php deleted file mode 100644 index d4dfd9d..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112916.php +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112920.php b/.history/resources/views/layouts/app.blade_20260331112920.php deleted file mode 100644 index f6616a9..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112920.php +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112941.php b/.history/resources/views/layouts/app.blade_20260331112941.php deleted file mode 100644 index 8ae29d8..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112941.php +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331112954.php b/.history/resources/views/layouts/app.blade_20260331112954.php deleted file mode 100644 index f281635..0000000 --- a/.history/resources/views/layouts/app.blade_20260331112954.php +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331113927.php b/.history/resources/views/layouts/app.blade_20260331113927.php deleted file mode 100644 index 6e194d3..0000000 --- a/.history/resources/views/layouts/app.blade_20260331113927.php +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331113931.php b/.history/resources/views/layouts/app.blade_20260331113931.php deleted file mode 100644 index cea4ce5..0000000 --- a/.history/resources/views/layouts/app.blade_20260331113931.php +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331113956.php b/.history/resources/views/layouts/app.blade_20260331113956.php deleted file mode 100644 index 98ace43..0000000 --- a/.history/resources/views/layouts/app.blade_20260331113956.php +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331114001.php b/.history/resources/views/layouts/app.blade_20260331114001.php deleted file mode 100644 index fbecd21..0000000 --- a/.history/resources/views/layouts/app.blade_20260331114001.php +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331114009.php b/.history/resources/views/layouts/app.blade_20260331114009.php deleted file mode 100644 index 98ace43..0000000 --- a/.history/resources/views/layouts/app.blade_20260331114009.php +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331114011.php b/.history/resources/views/layouts/app.blade_20260331114011.php deleted file mode 100644 index cea4ce5..0000000 --- a/.history/resources/views/layouts/app.blade_20260331114011.php +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331114015.php b/.history/resources/views/layouts/app.blade_20260331114015.php deleted file mode 100644 index 98ace43..0000000 --- a/.history/resources/views/layouts/app.blade_20260331114015.php +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331114020.php b/.history/resources/views/layouts/app.blade_20260331114020.php deleted file mode 100644 index bd5fb65..0000000 --- a/.history/resources/views/layouts/app.blade_20260331114020.php +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260331140617.php b/.history/resources/views/layouts/app.blade_20260331140617.php deleted file mode 100644 index 330c485..0000000 --- a/.history/resources/views/layouts/app.blade_20260331140617.php +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401004903.php b/.history/resources/views/layouts/app.blade_20260401004903.php deleted file mode 100644 index 330c485..0000000 --- a/.history/resources/views/layouts/app.blade_20260401004903.php +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100616.php b/.history/resources/views/layouts/app.blade_20260401100616.php deleted file mode 100644 index 9b02cb0..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100616.php +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100627.php b/.history/resources/views/layouts/app.blade_20260401100627.php deleted file mode 100644 index 97b11ed..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100627.php +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100700.php b/.history/resources/views/layouts/app.blade_20260401100700.php deleted file mode 100644 index 1d7a682..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100700.php +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100710.php b/.history/resources/views/layouts/app.blade_20260401100710.php deleted file mode 100644 index 330c485..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100710.php +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100721.php b/.history/resources/views/layouts/app.blade_20260401100721.php deleted file mode 100644 index 9661e89..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100721.php +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100723.php b/.history/resources/views/layouts/app.blade_20260401100723.php deleted file mode 100644 index 7a2dbae..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100723.php +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100726.php b/.history/resources/views/layouts/app.blade_20260401100726.php deleted file mode 100644 index d0ec7a1..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100726.php +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401100738.php b/.history/resources/views/layouts/app.blade_20260401100738.php deleted file mode 100644 index 76ddae3..0000000 --- a/.history/resources/views/layouts/app.blade_20260401100738.php +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110136.php b/.history/resources/views/layouts/app.blade_20260401110136.php deleted file mode 100644 index bfff750..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110136.php +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110215.php b/.history/resources/views/layouts/app.blade_20260401110215.php deleted file mode 100644 index 1d78e7d..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110215.php +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110217.php b/.history/resources/views/layouts/app.blade_20260401110217.php deleted file mode 100644 index 7f7e1a4..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110217.php +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110228.php b/.history/resources/views/layouts/app.blade_20260401110228.php deleted file mode 100644 index 865e23f..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110228.php +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110414.php b/.history/resources/views/layouts/app.blade_20260401110414.php deleted file mode 100644 index 24a78c9..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110414.php +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110425.php b/.history/resources/views/layouts/app.blade_20260401110425.php deleted file mode 100644 index 2235617..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110425.php +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110428.php b/.history/resources/views/layouts/app.blade_20260401110428.php deleted file mode 100644 index 0f45cca..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110428.php +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110446.php b/.history/resources/views/layouts/app.blade_20260401110446.php deleted file mode 100644 index 3a36a72..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110446.php +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110500.php b/.history/resources/views/layouts/app.blade_20260401110500.php deleted file mode 100644 index 0a112bf..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110500.php +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110502.php b/.history/resources/views/layouts/app.blade_20260401110502.php deleted file mode 100644 index 04ec42a..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110502.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110608.php b/.history/resources/views/layouts/app.blade_20260401110608.php deleted file mode 100644 index 0de474c..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110608.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110614.php b/.history/resources/views/layouts/app.blade_20260401110614.php deleted file mode 100644 index 04ec42a..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110614.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401110653.php b/.history/resources/views/layouts/app.blade_20260401110653.php deleted file mode 100644 index 2fe4e5b..0000000 --- a/.history/resources/views/layouts/app.blade_20260401110653.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111144.php b/.history/resources/views/layouts/app.blade_20260401111144.php deleted file mode 100644 index 9168683..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111144.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111148.php b/.history/resources/views/layouts/app.blade_20260401111148.php deleted file mode 100644 index fea450c..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111148.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111315.php b/.history/resources/views/layouts/app.blade_20260401111315.php deleted file mode 100644 index e4e8701..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111315.php +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111346.php b/.history/resources/views/layouts/app.blade_20260401111346.php deleted file mode 100644 index 7e76b5f..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111346.php +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111351.php b/.history/resources/views/layouts/app.blade_20260401111351.php deleted file mode 100644 index a12b9e3..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111351.php +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111415.php b/.history/resources/views/layouts/app.blade_20260401111415.php deleted file mode 100644 index f3f9164..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111415.php +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111423.php b/.history/resources/views/layouts/app.blade_20260401111423.php deleted file mode 100644 index a12b9e3..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111423.php +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111615.php b/.history/resources/views/layouts/app.blade_20260401111615.php deleted file mode 100644 index c1515bb..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111615.php +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111619.php b/.history/resources/views/layouts/app.blade_20260401111619.php deleted file mode 100644 index ba6e40a..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111619.php +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111620.php b/.history/resources/views/layouts/app.blade_20260401111620.php deleted file mode 100644 index efe966d..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111620.php +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111708.php b/.history/resources/views/layouts/app.blade_20260401111708.php deleted file mode 100644 index f9855e6..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111708.php +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111835.php b/.history/resources/views/layouts/app.blade_20260401111835.php deleted file mode 100644 index 16ded71..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111835.php +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111841.php b/.history/resources/views/layouts/app.blade_20260401111841.php deleted file mode 100644 index 7497076..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111841.php +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111848.php b/.history/resources/views/layouts/app.blade_20260401111848.php deleted file mode 100644 index 364720b..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111848.php +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401111909.php b/.history/resources/views/layouts/app.blade_20260401111909.php deleted file mode 100644 index 4555bef..0000000 --- a/.history/resources/views/layouts/app.blade_20260401111909.php +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150113.php b/.history/resources/views/layouts/app.blade_20260401150113.php deleted file mode 100644 index da4f5d6..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150113.php +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150117.php b/.history/resources/views/layouts/app.blade_20260401150117.php deleted file mode 100644 index 779ffb8..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150117.php +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150313.php b/.history/resources/views/layouts/app.blade_20260401150313.php deleted file mode 100644 index ab5f4b5..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150313.php +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150319.php b/.history/resources/views/layouts/app.blade_20260401150319.php deleted file mode 100644 index 83c3d98..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150319.php +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150321.php b/.history/resources/views/layouts/app.blade_20260401150321.php deleted file mode 100644 index 6cdc645..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150321.php +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150501.php b/.history/resources/views/layouts/app.blade_20260401150501.php deleted file mode 100644 index 0c15bdd..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150501.php +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150508.php b/.history/resources/views/layouts/app.blade_20260401150508.php deleted file mode 100644 index fb00de6..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150508.php +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150511.php b/.history/resources/views/layouts/app.blade_20260401150511.php deleted file mode 100644 index c418e31..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150511.php +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150532.php b/.history/resources/views/layouts/app.blade_20260401150532.php deleted file mode 100644 index 2cfcac6..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150532.php +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150541.php b/.history/resources/views/layouts/app.blade_20260401150541.php deleted file mode 100644 index 12eb8ef..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150541.php +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150713.php b/.history/resources/views/layouts/app.blade_20260401150713.php deleted file mode 100644 index b4370ca..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150713.php +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150718.php b/.history/resources/views/layouts/app.blade_20260401150718.php deleted file mode 100644 index d4db0c4..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150718.php +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401150736.php b/.history/resources/views/layouts/app.blade_20260401150736.php deleted file mode 100644 index e49b5cf..0000000 --- a/.history/resources/views/layouts/app.blade_20260401150736.php +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155325.php b/.history/resources/views/layouts/app.blade_20260401155325.php deleted file mode 100644 index f08dd55..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155325.php +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155329.php b/.history/resources/views/layouts/app.blade_20260401155329.php deleted file mode 100644 index 91fc2ac..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155329.php +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155333.php b/.history/resources/views/layouts/app.blade_20260401155333.php deleted file mode 100644 index 3bd04c7..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155333.php +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155351.php b/.history/resources/views/layouts/app.blade_20260401155351.php deleted file mode 100644 index 09b5627..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155351.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155723.php b/.history/resources/views/layouts/app.blade_20260401155723.php deleted file mode 100644 index a2f5385..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155723.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155728.php b/.history/resources/views/layouts/app.blade_20260401155728.php deleted file mode 100644 index 7a32a6c..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155728.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155804.php b/.history/resources/views/layouts/app.blade_20260401155804.php deleted file mode 100644 index 0fdb9fe..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155804.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155808.php b/.history/resources/views/layouts/app.blade_20260401155808.php deleted file mode 100644 index 8e43e94..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155808.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155829.php b/.history/resources/views/layouts/app.blade_20260401155829.php deleted file mode 100644 index 7a32a6c..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155829.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155940.php b/.history/resources/views/layouts/app.blade_20260401155940.php deleted file mode 100644 index 6b843d6..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155940.php +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401155955.php b/.history/resources/views/layouts/app.blade_20260401155955.php deleted file mode 100644 index d2d58d0..0000000 --- a/.history/resources/views/layouts/app.blade_20260401155955.php +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160012.php b/.history/resources/views/layouts/app.blade_20260401160012.php deleted file mode 100644 index 87fb599..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160012.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160016.php b/.history/resources/views/layouts/app.blade_20260401160016.php deleted file mode 100644 index 09b5627..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160016.php +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160307.php b/.history/resources/views/layouts/app.blade_20260401160307.php deleted file mode 100644 index 3e13abe..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160307.php +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160319.php b/.history/resources/views/layouts/app.blade_20260401160319.php deleted file mode 100644 index 7acc772..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160319.php +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160432.php b/.history/resources/views/layouts/app.blade_20260401160432.php deleted file mode 100644 index 6296e6a..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160432.php +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160436.php b/.history/resources/views/layouts/app.blade_20260401160436.php deleted file mode 100644 index 77f4934..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160436.php +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160454.php b/.history/resources/views/layouts/app.blade_20260401160454.php deleted file mode 100644 index 6e2033e..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160454.php +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260401160506.php b/.history/resources/views/layouts/app.blade_20260401160506.php deleted file mode 100644 index d53220b..0000000 --- a/.history/resources/views/layouts/app.blade_20260401160506.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163333.php b/.history/resources/views/layouts/app.blade_20260408163333.php deleted file mode 100644 index a56f106..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163333.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163345.php b/.history/resources/views/layouts/app.blade_20260408163345.php deleted file mode 100644 index a73268e..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163345.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163426.php b/.history/resources/views/layouts/app.blade_20260408163426.php deleted file mode 100644 index d90474b..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163426.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163431.php b/.history/resources/views/layouts/app.blade_20260408163431.php deleted file mode 100644 index 26fe5d2..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163431.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163437.php b/.history/resources/views/layouts/app.blade_20260408163437.php deleted file mode 100644 index 8dc3c11..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163437.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163444.php b/.history/resources/views/layouts/app.blade_20260408163444.php deleted file mode 100644 index 209befa..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163444.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163723.php b/.history/resources/views/layouts/app.blade_20260408163723.php deleted file mode 100644 index 8dc3c11..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163723.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163729.php b/.history/resources/views/layouts/app.blade_20260408163729.php deleted file mode 100644 index d0d1eb2..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163729.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163734.php b/.history/resources/views/layouts/app.blade_20260408163734.php deleted file mode 100644 index 9abaa3f..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163734.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408163742.php b/.history/resources/views/layouts/app.blade_20260408163742.php deleted file mode 100644 index 209befa..0000000 --- a/.history/resources/views/layouts/app.blade_20260408163742.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164254.php b/.history/resources/views/layouts/app.blade_20260408164254.php deleted file mode 100644 index a2a02ef..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164254.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164259.php b/.history/resources/views/layouts/app.blade_20260408164259.php deleted file mode 100644 index cf3e7b2..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164259.php +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164301.php b/.history/resources/views/layouts/app.blade_20260408164301.php deleted file mode 100644 index 209befa..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164301.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164303.php b/.history/resources/views/layouts/app.blade_20260408164303.php deleted file mode 100644 index a2a02ef..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164303.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164306.php b/.history/resources/views/layouts/app.blade_20260408164306.php deleted file mode 100644 index 6433665..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164306.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164311.php b/.history/resources/views/layouts/app.blade_20260408164311.php deleted file mode 100644 index 527ee19..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164311.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164314.php b/.history/resources/views/layouts/app.blade_20260408164314.php deleted file mode 100644 index 390aeb8..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164314.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164333.php b/.history/resources/views/layouts/app.blade_20260408164333.php deleted file mode 100644 index 8dc3c11..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164333.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164336.php b/.history/resources/views/layouts/app.blade_20260408164336.php deleted file mode 100644 index 209befa..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164336.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164521.php b/.history/resources/views/layouts/app.blade_20260408164521.php deleted file mode 100644 index 3871e54..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164521.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164609.php b/.history/resources/views/layouts/app.blade_20260408164609.php deleted file mode 100644 index 209befa..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164609.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408164629.php b/.history/resources/views/layouts/app.blade_20260408164629.php deleted file mode 100644 index 3871e54..0000000 --- a/.history/resources/views/layouts/app.blade_20260408164629.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408165011.php b/.history/resources/views/layouts/app.blade_20260408165011.php deleted file mode 100644 index 209befa..0000000 --- a/.history/resources/views/layouts/app.blade_20260408165011.php +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408165845.php b/.history/resources/views/layouts/app.blade_20260408165845.php deleted file mode 100644 index 3af768f..0000000 --- a/.history/resources/views/layouts/app.blade_20260408165845.php +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260408165850.php b/.history/resources/views/layouts/app.blade_20260408165850.php deleted file mode 100644 index d4dd5ed..0000000 --- a/.history/resources/views/layouts/app.blade_20260408165850.php +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095659.php b/.history/resources/views/layouts/app.blade_20260409095659.php deleted file mode 100644 index f815d80..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095659.php +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095701.php b/.history/resources/views/layouts/app.blade_20260409095701.php deleted file mode 100644 index b54e260..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095701.php +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095827.php b/.history/resources/views/layouts/app.blade_20260409095827.php deleted file mode 100644 index f1d5062..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095827.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095840.php b/.history/resources/views/layouts/app.blade_20260409095840.php deleted file mode 100644 index aae3647..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095840.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095844.php b/.history/resources/views/layouts/app.blade_20260409095844.php deleted file mode 100644 index 201908f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095844.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095852.php b/.history/resources/views/layouts/app.blade_20260409095852.php deleted file mode 100644 index aae3647..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095852.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095853.php b/.history/resources/views/layouts/app.blade_20260409095853.php deleted file mode 100644 index f1d5062..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095853.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095858.php b/.history/resources/views/layouts/app.blade_20260409095858.php deleted file mode 100644 index e28b085..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095858.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095900.php b/.history/resources/views/layouts/app.blade_20260409095900.php deleted file mode 100644 index 80cf362..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095900.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095912.php b/.history/resources/views/layouts/app.blade_20260409095912.php deleted file mode 100644 index d4e7e7c..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095912.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095917.php b/.history/resources/views/layouts/app.blade_20260409095917.php deleted file mode 100644 index c54da90..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095917.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095928.php b/.history/resources/views/layouts/app.blade_20260409095928.php deleted file mode 100644 index 0a5d9cf..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095928.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095932.php b/.history/resources/views/layouts/app.blade_20260409095932.php deleted file mode 100644 index f2f513f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095932.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095941.php b/.history/resources/views/layouts/app.blade_20260409095941.php deleted file mode 100644 index 8e8b327..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095941.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095945.php b/.history/resources/views/layouts/app.blade_20260409095945.php deleted file mode 100644 index bbd4b46..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095945.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409095948.php b/.history/resources/views/layouts/app.blade_20260409095948.php deleted file mode 100644 index 657da84..0000000 --- a/.history/resources/views/layouts/app.blade_20260409095948.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100003.php b/.history/resources/views/layouts/app.blade_20260409100003.php deleted file mode 100644 index 2fe117d..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100003.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100012.php b/.history/resources/views/layouts/app.blade_20260409100012.php deleted file mode 100644 index f2f513f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100012.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100026.php b/.history/resources/views/layouts/app.blade_20260409100026.php deleted file mode 100644 index 652be16..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100026.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100029.php b/.history/resources/views/layouts/app.blade_20260409100029.php deleted file mode 100644 index 0bc862f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100029.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100033.php b/.history/resources/views/layouts/app.blade_20260409100033.php deleted file mode 100644 index d9b732d..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100033.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100039.php b/.history/resources/views/layouts/app.blade_20260409100039.php deleted file mode 100644 index a8cd297..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100039.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100043.php b/.history/resources/views/layouts/app.blade_20260409100043.php deleted file mode 100644 index 1081aec..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100043.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100045.php b/.history/resources/views/layouts/app.blade_20260409100045.php deleted file mode 100644 index e31bd08..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100045.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100046.php b/.history/resources/views/layouts/app.blade_20260409100046.php deleted file mode 100644 index a8cd297..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100046.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100048.php b/.history/resources/views/layouts/app.blade_20260409100048.php deleted file mode 100644 index e31bd08..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100048.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409100050.php b/.history/resources/views/layouts/app.blade_20260409100050.php deleted file mode 100644 index c9f548f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409100050.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409130932.php b/.history/resources/views/layouts/app.blade_20260409130932.php deleted file mode 100644 index 544019c..0000000 --- a/.history/resources/views/layouts/app.blade_20260409130932.php +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409130939.php b/.history/resources/views/layouts/app.blade_20260409130939.php deleted file mode 100644 index edcc0e1..0000000 --- a/.history/resources/views/layouts/app.blade_20260409130939.php +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131038.php b/.history/resources/views/layouts/app.blade_20260409131038.php deleted file mode 100644 index c9f548f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131038.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131041.php b/.history/resources/views/layouts/app.blade_20260409131041.php deleted file mode 100644 index 544019c..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131041.php +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131044.php b/.history/resources/views/layouts/app.blade_20260409131044.php deleted file mode 100644 index c9f548f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131044.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131056.php b/.history/resources/views/layouts/app.blade_20260409131056.php deleted file mode 100644 index 544019c..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131056.php +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131058.php b/.history/resources/views/layouts/app.blade_20260409131058.php deleted file mode 100644 index c9f548f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131058.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131104.php b/.history/resources/views/layouts/app.blade_20260409131104.php deleted file mode 100644 index c631041..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131104.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131107.php b/.history/resources/views/layouts/app.blade_20260409131107.php deleted file mode 100644 index c9f548f..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131107.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131108.php b/.history/resources/views/layouts/app.blade_20260409131108.php deleted file mode 100644 index 72a7a53..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131108.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131111.php b/.history/resources/views/layouts/app.blade_20260409131111.php deleted file mode 100644 index a536234..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131111.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131113.php b/.history/resources/views/layouts/app.blade_20260409131113.php deleted file mode 100644 index eb04dd1..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131113.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260409131115.php b/.history/resources/views/layouts/app.blade_20260409131115.php deleted file mode 100644 index 47cdc03..0000000 --- a/.history/resources/views/layouts/app.blade_20260409131115.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410133656.php b/.history/resources/views/layouts/app.blade_20260410133656.php deleted file mode 100644 index 32267b5..0000000 --- a/.history/resources/views/layouts/app.blade_20260410133656.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410133700.php b/.history/resources/views/layouts/app.blade_20260410133700.php deleted file mode 100644 index cc137cb..0000000 --- a/.history/resources/views/layouts/app.blade_20260410133700.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410133707.php b/.history/resources/views/layouts/app.blade_20260410133707.php deleted file mode 100644 index 95f837c..0000000 --- a/.history/resources/views/layouts/app.blade_20260410133707.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410133710.php b/.history/resources/views/layouts/app.blade_20260410133710.php deleted file mode 100644 index 266a52e..0000000 --- a/.history/resources/views/layouts/app.blade_20260410133710.php +++ /dev/null @@ -1,385 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155204.php b/.history/resources/views/layouts/app.blade_20260410155204.php deleted file mode 100644 index cd91b6a..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155204.php +++ /dev/null @@ -1,386 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155206.php b/.history/resources/views/layouts/app.blade_20260410155206.php deleted file mode 100644 index c4dc381..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155206.php +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} -@if(session('success')) -
- {{ session('success') }} - -
-@endif - -@if(session('error')) -
- {{ session('error') }} - -
-@endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155212.php b/.history/resources/views/layouts/app.blade_20260410155212.php deleted file mode 100644 index 8edf7be..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155212.php +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155241.php b/.history/resources/views/layouts/app.blade_20260410155241.php deleted file mode 100644 index 294fe01..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155241.php +++ /dev/null @@ -1,442 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155258.php b/.history/resources/views/layouts/app.blade_20260410155258.php deleted file mode 100644 index 9f8d77a..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155258.php +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155621.php b/.history/resources/views/layouts/app.blade_20260410155621.php deleted file mode 100644 index f40cdc7..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155621.php +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410155635.php b/.history/resources/views/layouts/app.blade_20260410155635.php deleted file mode 100644 index 6378aca..0000000 --- a/.history/resources/views/layouts/app.blade_20260410155635.php +++ /dev/null @@ -1,466 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410162246.php b/.history/resources/views/layouts/app.blade_20260410162246.php deleted file mode 100644 index 1fb82ce..0000000 --- a/.history/resources/views/layouts/app.blade_20260410162246.php +++ /dev/null @@ -1,473 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410162301.php b/.history/resources/views/layouts/app.blade_20260410162301.php deleted file mode 100644 index 4e0c1d6..0000000 --- a/.history/resources/views/layouts/app.blade_20260410162301.php +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260410162309.php b/.history/resources/views/layouts/app.blade_20260410162309.php deleted file mode 100644 index 0769146..0000000 --- a/.history/resources/views/layouts/app.blade_20260410162309.php +++ /dev/null @@ -1,499 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413201627.php b/.history/resources/views/layouts/app.blade_20260413201627.php deleted file mode 100644 index 7aa3bd1..0000000 --- a/.history/resources/views/layouts/app.blade_20260413201627.php +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413201638.php b/.history/resources/views/layouts/app.blade_20260413201638.php deleted file mode 100644 index e5f103f..0000000 --- a/.history/resources/views/layouts/app.blade_20260413201638.php +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413201640.php b/.history/resources/views/layouts/app.blade_20260413201640.php deleted file mode 100644 index 05cdff9..0000000 --- a/.history/resources/views/layouts/app.blade_20260413201640.php +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413201900.php b/.history/resources/views/layouts/app.blade_20260413201900.php deleted file mode 100644 index 1667890..0000000 --- a/.history/resources/views/layouts/app.blade_20260413201900.php +++ /dev/null @@ -1,519 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - -/* ========================= */ -/* 🔥 NAVBAR PREMIUM */ -/* ========================= */ -.navbar-modern { - background: rgba(255, 255, 255, 0.85); - backdrop-filter: blur(12px); - box-shadow: 0 8px 30px rgba(0,0,0,0.05); - border-radius: 0 0 20px 20px; -} - -/* NAV LINK */ -.nav-link { - transition: all 0.3s ease; - display: flex; - flex-direction: column; - align-items: center; - font-size: 13px; - color: #374151 !important; -} - -.nav-link i { - font-size: 16px; - margin-bottom: 4px; -} - -.nav-link:hover { - transform: translateY(-2px); - color: #4f46e5 !important; -} - -/* ACTIVE MENU */ -.nav-link.active { - color: #4f46e5 !important; - font-weight: 600; -} - -/* ========================= */ -/* DROPDOWN */ -/* ========================= */ -.dropdown-menu { - border-radius: 12px; - box-shadow: 0 10px 25px rgba(0,0,0,0.1); - border: none; - padding: 8px; -} - -.dropdown-item { - border-radius: 8px; - transition: 0.3s; -} - -.dropdown-item:hover { - background: #4f46e5; - color: white; -} - -/* ========================= */ -/* LOGO */ -/* ========================= */ -.logo-text { - color: #111 !important; - font-weight: 700; - letter-spacing: 1px; - font-size: 18px; - transition: 0.3s; -} - -.logo-text:hover { - color: #4f46e5 !important; - transform: scale(1.05); -} - -/* ========================= */ -/* USER / AVATAR */ -/* ========================= */ -.avatar-navbar { - width: 42px; - height: 42px; - border-radius: 50%; - object-fit: cover; - border: 2px solid #4f46e5; - transition: 0.3s; - box-shadow: 0 4px 10px rgba(0,0,0,0.1); -} - -.avatar-navbar:hover { - transform: scale(1.1); -} - -/* USER TEXT */ -.username { - font-size: 13px; - font-weight: 500; -} - -/* ========================= */ -/* LOGOUT */ -/* ========================= */ -.logout-btn { - color: #ef4444; - transition: 0.3s; -} - -.logout-btn:hover { - color: #dc2626; - transform: scale(1.2); -} - -/* ========================= */ -/* 🔥 CARD MODERN */ -/* ========================= */ -.card { - border-radius: 14px; - transition: 0.3s; - border: none; - box-shadow: 0 5px 15px rgba(0,0,0,0.05); -} - -.card:hover { - transform: translateY(-4px); - box-shadow: 0 12px 25px rgba(0,0,0,0.1); -} - -/* ========================= */ -/* BUTTON */ -/* ========================= */ -.btn { - border-radius: 10px; - transition: 0.3s; -} - -.btn:hover { - transform: scale(1.05); -} - -/* ========================= */ -/* TABLE */ -/* ========================= */ -.table { - border-radius: 12px; - overflow: hidden; -} - -.table tbody tr { - transition: 0.2s; -} - -.table tbody tr:hover { - background: #f9fafb; -} - -/* ========================= */ -/* 🔔 ALERT ANIMATION */ -/* ========================= */ -.alert { - animation: slideFade 0.5s ease; -} - -@keyframes slideFade { - from { - opacity: 0; - transform: translateX(40px); - } - to { - opacity: 1; - transform: translateX(0); - } -} - -/* ========================= */ -/* 📱 MOBILE NAV */ -/* ========================= */ -.mobile-nav { - position: fixed; - bottom: 0; - left: 0; - right: 0; - background: rgba(255,255,255,0.95); - backdrop-filter: blur(10px); - display: flex; - justify-content: space-around; - padding: 12px; - box-shadow: 0 -5px 25px rgba(0,0,0,0.08); - z-index: 999; -} - -.mobile-nav a { - color: #6b7280; - font-size: 20px; - transition: 0.3s; -} - -.mobile-nav a:hover { - color: #4f46e5; - transform: scale(1.2); -} - -/* ========================= */ -/* BODY SMOOTH */ -/* ========================= */ -body { - scroll-behavior: smooth; - background: #f9fafb; -} - -body { - scroll-behavior: smooth; -} - - - diff --git a/.history/resources/views/layouts/app.blade_20260413201902.php b/.history/resources/views/layouts/app.blade_20260413201902.php deleted file mode 100644 index 05cdff9..0000000 --- a/.history/resources/views/layouts/app.blade_20260413201902.php +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413201930.php b/.history/resources/views/layouts/app.blade_20260413201930.php deleted file mode 100644 index 167fc80..0000000 --- a/.history/resources/views/layouts/app.blade_20260413201930.php +++ /dev/null @@ -1,516 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202121.php b/.history/resources/views/layouts/app.blade_20260413202121.php deleted file mode 100644 index 4a8b9a1..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202121.php +++ /dev/null @@ -1,520 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202136.php b/.history/resources/views/layouts/app.blade_20260413202136.php deleted file mode 100644 index 489035c..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202136.php +++ /dev/null @@ -1,520 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202143.php b/.history/resources/views/layouts/app.blade_20260413202143.php deleted file mode 100644 index ed9050e..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202143.php +++ /dev/null @@ -1,524 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202203.php b/.history/resources/views/layouts/app.blade_20260413202203.php deleted file mode 100644 index 8bbf20c..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202203.php +++ /dev/null @@ -1,524 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202210.php b/.history/resources/views/layouts/app.blade_20260413202210.php deleted file mode 100644 index 7f011ee..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202210.php +++ /dev/null @@ -1,524 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202222.php b/.history/resources/views/layouts/app.blade_20260413202222.php deleted file mode 100644 index 7995226..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202222.php +++ /dev/null @@ -1,524 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202223.php b/.history/resources/views/layouts/app.blade_20260413202223.php deleted file mode 100644 index 5a683a5..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202223.php +++ /dev/null @@ -1,524 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202400.php b/.history/resources/views/layouts/app.blade_20260413202400.php deleted file mode 100644 index 71c9135..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202400.php +++ /dev/null @@ -1,528 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202401.php b/.history/resources/views/layouts/app.blade_20260413202401.php deleted file mode 100644 index 9f70713..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202401.php +++ /dev/null @@ -1,526 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202403.php b/.history/resources/views/layouts/app.blade_20260413202403.php deleted file mode 100644 index 5868bc5..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202403.php +++ /dev/null @@ -1,525 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202409.php b/.history/resources/views/layouts/app.blade_20260413202409.php deleted file mode 100644 index 497b3a1..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202409.php +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202413.php b/.history/resources/views/layouts/app.blade_20260413202413.php deleted file mode 100644 index 17fbfcc..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202413.php +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202417.php b/.history/resources/views/layouts/app.blade_20260413202417.php deleted file mode 100644 index 1111ba5..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202417.php +++ /dev/null @@ -1,527 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202437.php b/.history/resources/views/layouts/app.blade_20260413202437.php deleted file mode 100644 index 7f31e6c..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202437.php +++ /dev/null @@ -1,551 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202445.php b/.history/resources/views/layouts/app.blade_20260413202445.php deleted file mode 100644 index 95147e1..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202445.php +++ /dev/null @@ -1,567 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202638.php b/.history/resources/views/layouts/app.blade_20260413202638.php deleted file mode 100644 index 9eb3df1..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202638.php +++ /dev/null @@ -1,686 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413202652.php b/.history/resources/views/layouts/app.blade_20260413202652.php deleted file mode 100644 index 6b02a82..0000000 --- a/.history/resources/views/layouts/app.blade_20260413202652.php +++ /dev/null @@ -1,689 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413203054.php b/.history/resources/views/layouts/app.blade_20260413203054.php deleted file mode 100644 index c1a9fb4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413203054.php +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413203121.php b/.history/resources/views/layouts/app.blade_20260413203121.php deleted file mode 100644 index 7530672..0000000 --- a/.history/resources/views/layouts/app.blade_20260413203121.php +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - - -toggle.innerHTML = - document.body.classList.contains("dark") ? "☀️" : "🌙"; - diff --git a/.history/resources/views/layouts/app.blade_20260413203124.php b/.history/resources/views/layouts/app.blade_20260413203124.php deleted file mode 100644 index c1a9fb4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413203124.php +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413203128.php b/.history/resources/views/layouts/app.blade_20260413203128.php deleted file mode 100644 index 0424d37..0000000 --- a/.history/resources/views/layouts/app.blade_20260413203128.php +++ /dev/null @@ -1,728 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413203417.php b/.history/resources/views/layouts/app.blade_20260413203417.php deleted file mode 100644 index b0c99ff..0000000 --- a/.history/resources/views/layouts/app.blade_20260413203417.php +++ /dev/null @@ -1,742 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413203557.php b/.history/resources/views/layouts/app.blade_20260413203557.php deleted file mode 100644 index 44cc825..0000000 --- a/.history/resources/views/layouts/app.blade_20260413203557.php +++ /dev/null @@ -1,746 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413204217.php b/.history/resources/views/layouts/app.blade_20260413204217.php deleted file mode 100644 index c2cc1b2..0000000 --- a/.history/resources/views/layouts/app.blade_20260413204217.php +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413205746.php b/.history/resources/views/layouts/app.blade_20260413205746.php deleted file mode 100644 index c5acdb4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413205746.php +++ /dev/null @@ -1,629 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413205749.php b/.history/resources/views/layouts/app.blade_20260413205749.php deleted file mode 100644 index 8a399d4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413205749.php +++ /dev/null @@ -1,628 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413205754.php b/.history/resources/views/layouts/app.blade_20260413205754.php deleted file mode 100644 index 82a8ae6..0000000 --- a/.history/resources/views/layouts/app.blade_20260413205754.php +++ /dev/null @@ -1,671 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413205802.php b/.history/resources/views/layouts/app.blade_20260413205802.php deleted file mode 100644 index 1a801c4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413205802.php +++ /dev/null @@ -1,676 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413205950.php b/.history/resources/views/layouts/app.blade_20260413205950.php deleted file mode 100644 index 8a399d4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413205950.php +++ /dev/null @@ -1,628 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413210712.php b/.history/resources/views/layouts/app.blade_20260413210712.php deleted file mode 100644 index 3b96e77..0000000 --- a/.history/resources/views/layouts/app.blade_20260413210712.php +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413211010.php b/.history/resources/views/layouts/app.blade_20260413211010.php deleted file mode 100644 index b92d939..0000000 --- a/.history/resources/views/layouts/app.blade_20260413211010.php +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413211013.php b/.history/resources/views/layouts/app.blade_20260413211013.php deleted file mode 100644 index 316f4a4..0000000 --- a/.history/resources/views/layouts/app.blade_20260413211013.php +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413211017.php b/.history/resources/views/layouts/app.blade_20260413211017.php deleted file mode 100644 index 0e76ab2..0000000 --- a/.history/resources/views/layouts/app.blade_20260413211017.php +++ /dev/null @@ -1,627 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413211242.php b/.history/resources/views/layouts/app.blade_20260413211242.php deleted file mode 100644 index 25d57ca..0000000 --- a/.history/resources/views/layouts/app.blade_20260413211242.php +++ /dev/null @@ -1,641 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260413220233.php b/.history/resources/views/layouts/app.blade_20260413220233.php deleted file mode 100644 index f714447..0000000 --- a/.history/resources/views/layouts/app.blade_20260413220233.php +++ /dev/null @@ -1,641 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260413220316.php b/.history/resources/views/layouts/app.blade_20260413220316.php deleted file mode 100644 index d0d110b..0000000 --- a/.history/resources/views/layouts/app.blade_20260413220316.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260414210507.php b/.history/resources/views/layouts/app.blade_20260414210507.php deleted file mode 100644 index 197d58a..0000000 --- a/.history/resources/views/layouts/app.blade_20260414210507.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414210509.php b/.history/resources/views/layouts/app.blade_20260414210509.php deleted file mode 100644 index ca6eaee..0000000 --- a/.history/resources/views/layouts/app.blade_20260414210509.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414210510.php b/.history/resources/views/layouts/app.blade_20260414210510.php deleted file mode 100644 index 197d58a..0000000 --- a/.history/resources/views/layouts/app.blade_20260414210510.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414210518.php b/.history/resources/views/layouts/app.blade_20260414210518.php deleted file mode 100644 index 4e8931b..0000000 --- a/.history/resources/views/layouts/app.blade_20260414210518.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414210520.php b/.history/resources/views/layouts/app.blade_20260414210520.php deleted file mode 100644 index b5be2be..0000000 --- a/.history/resources/views/layouts/app.blade_20260414210520.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260414210544.php b/.history/resources/views/layouts/app.blade_20260414210544.php deleted file mode 100644 index 4e0085d..0000000 --- a/.history/resources/views/layouts/app.blade_20260414210544.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414223319.php b/.history/resources/views/layouts/app.blade_20260414223319.php deleted file mode 100644 index 5396011..0000000 --- a/.history/resources/views/layouts/app.blade_20260414223319.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414223320.php b/.history/resources/views/layouts/app.blade_20260414223320.php deleted file mode 100644 index 6e32b9b..0000000 --- a/.history/resources/views/layouts/app.blade_20260414223320.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414223327.php b/.history/resources/views/layouts/app.blade_20260414223327.php deleted file mode 100644 index 4e0085d..0000000 --- a/.history/resources/views/layouts/app.blade_20260414223327.php +++ /dev/null @@ -1,644 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414230607.php b/.history/resources/views/layouts/app.blade_20260414230607.php deleted file mode 100644 index 6e32b9b..0000000 --- a/.history/resources/views/layouts/app.blade_20260414230607.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260414231443.php b/.history/resources/views/layouts/app.blade_20260414231443.php deleted file mode 100644 index 6e32b9b..0000000 --- a/.history/resources/views/layouts/app.blade_20260414231443.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416092525.php b/.history/resources/views/layouts/app.blade_20260416092525.php deleted file mode 100644 index e429927..0000000 --- a/.history/resources/views/layouts/app.blade_20260416092525.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260416092526.php b/.history/resources/views/layouts/app.blade_20260416092526.php deleted file mode 100644 index e429927..0000000 --- a/.history/resources/views/layouts/app.blade_20260416092526.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260416092538.php b/.history/resources/views/layouts/app.blade_20260416092538.php deleted file mode 100644 index b59c2fe..0000000 --- a/.history/resources/views/layouts/app.blade_20260416092538.php +++ /dev/null @@ -1,646 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416104945.php b/.history/resources/views/layouts/app.blade_20260416104945.php deleted file mode 100644 index 967327c..0000000 --- a/.history/resources/views/layouts/app.blade_20260416104945.php +++ /dev/null @@ -1,654 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260416194149.php b/.history/resources/views/layouts/app.blade_20260416194149.php deleted file mode 100644 index 083443f..0000000 --- a/.history/resources/views/layouts/app.blade_20260416194149.php +++ /dev/null @@ -1,670 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/app.blade_20260416195740.php b/.history/resources/views/layouts/app.blade_20260416195740.php deleted file mode 100644 index b62f4af..0000000 --- a/.history/resources/views/layouts/app.blade_20260416195740.php +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416195741.php b/.history/resources/views/layouts/app.blade_20260416195741.php deleted file mode 100644 index b62f4af..0000000 --- a/.history/resources/views/layouts/app.blade_20260416195741.php +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416195742.php b/.history/resources/views/layouts/app.blade_20260416195742.php deleted file mode 100644 index b62f4af..0000000 --- a/.history/resources/views/layouts/app.blade_20260416195742.php +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416195748.php b/.history/resources/views/layouts/app.blade_20260416195748.php deleted file mode 100644 index 2876ba5..0000000 --- a/.history/resources/views/layouts/app.blade_20260416195748.php +++ /dev/null @@ -1,671 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416195803.php b/.history/resources/views/layouts/app.blade_20260416195803.php deleted file mode 100644 index 44cdf60..0000000 --- a/.history/resources/views/layouts/app.blade_20260416195803.php +++ /dev/null @@ -1,683 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - @php - $isExpired = false; - - if(auth()->check()){ - $penghuni = \App\Models\Penghuni::where('email', auth()->user()->email)->first(); - - if ($penghuni && $penghuni->status_huni == 'Kontrak' && $penghuni->tanggal_keluar) { - $isExpired = now()->gt(\Carbon\Carbon::parse($penghuni->tanggal_keluar)); - } - } -@endphp - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - diff --git a/.history/resources/views/layouts/app.blade_20260416195806.php b/.history/resources/views/layouts/app.blade_20260416195806.php deleted file mode 100644 index 1c1fd4a..0000000 --- a/.history/resources/views/layouts/app.blade_20260416195806.php +++ /dev/null @@ -1,683 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - - - - @php - $isExpired = false; - - if (auth()->check()) { - $penghuni = \App\Models\Penghuni::where('email', auth()->user()->email)->first(); - - if ($penghuni && $penghuni->status_huni == 'Kontrak' && $penghuni->tanggal_keluar) { - $isExpired = now()->gt(\Carbon\Carbon::parse($penghuni->tanggal_keluar)); - } - } - @endphp - {{-- 🔔 NOTIFIKASI REALTIME --}} - @if(session('success')) -
- {{ session('success') }} - -
- @endif - - @if(session('error')) -
- {{ session('error') }} - -
- @endif - - - -
- - @if(auth()->check()) - - {{-- 🔥 ADMIN --}} - @if(auth()->user()->role == 'admin') - @include('components.sidebar') - @endif - - {{-- 🔥 RT --}} - @if(auth()->user()->role == 'rt') - @include('components.sidebar_rt') - @endif - - @endif - - -
- - -
- - - @if(auth()->check() && auth()->user()->role == 'user') - - @endif - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @yield('scripts') - -
- - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/.history/resources/views/layouts/auth.blade_20260329205914.php b/.history/resources/views/layouts/auth.blade_20260329205914.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/layouts/auth.blade_20260329205934.php b/.history/resources/views/layouts/auth.blade_20260329205934.php deleted file mode 100644 index a506425..0000000 --- a/.history/resources/views/layouts/auth.blade_20260329205934.php +++ /dev/null @@ -1,12 +0,0 @@ - - - - Auth - - - - - @yield('content') - - - diff --git a/.history/resources/views/layouts/user.blade_20260329215225.php b/.history/resources/views/layouts/user.blade_20260329215225.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/layouts/user.blade_20260329215239.php b/.history/resources/views/layouts/user.blade_20260329215239.php deleted file mode 100644 index 0e2e50a..0000000 --- a/.history/resources/views/layouts/user.blade_20260329215239.php +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/user.blade_20260329231718.php b/.history/resources/views/layouts/user.blade_20260329231718.php deleted file mode 100644 index 6d50fcb..0000000 --- a/.history/resources/views/layouts/user.blade_20260329231718.php +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - @include('components.sidebar-user') - - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/user.blade_20260329232053.php b/.history/resources/views/layouts/user.blade_20260329232053.php deleted file mode 100644 index e01a0a8..0000000 --- a/.history/resources/views/layouts/user.blade_20260329232053.php +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/user.blade_20260329232118.php b/.history/resources/views/layouts/user.blade_20260329232118.php deleted file mode 100644 index 6d50fcb..0000000 --- a/.history/resources/views/layouts/user.blade_20260329232118.php +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - @include('components.sidebar-user') - - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/layouts/user.blade_20260329232318.php b/.history/resources/views/layouts/user.blade_20260329232318.php deleted file mode 100644 index 0e2e50a..0000000 --- a/.history/resources/views/layouts/user.blade_20260329232318.php +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - Green View - - - - - - - - - - - - - -
- - - - - - -
- - -
- - - - - - - @yield('content') - - -
- - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/.history/resources/views/rt/dashboard.blade_20260416121357.php b/.history/resources/views/rt/dashboard.blade_20260416121357.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/rt/dashboard.blade_20260416121413.php b/.history/resources/views/rt/dashboard.blade_20260416121413.php deleted file mode 100644 index b20adf3..0000000 --- a/.history/resources/views/rt/dashboard.blade_20260416121413.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

- 🏡 Dashboard RT -

- -
- - {{-- TOTAL PENGHUNI --}} -
-
-
👨‍👩‍👧‍👦 Penghuni
-

{{ $totalPenghuni }}

-
-
- - {{-- TOTAL IURAN --}} -
-
-
💰 Iuran
-

{{ $totalIuran }}

-
-
- - {{-- PENGADUAN --}} -
-
-
📢 Pengaduan
-

{{ $totalPengaduan }}

-
-
- - {{-- MENUNGGU RT --}} -
-
-
⏳ Menunggu RT
-

{{ $menungguRT }}

-
-
- - {{-- MENUNGGU ADMIN --}} -
-
-
📤 Ke Admin
-

{{ $menungguAdmin }}

-
-
- -
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170052.php b/.history/resources/views/rt/penghuni/index.blade_20260416170052.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170057.php b/.history/resources/views/rt/penghuni/index.blade_20260416170057.php deleted file mode 100644 index f48aa82..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170057.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170511.php b/.history/resources/views/rt/penghuni/index.blade_20260416170511.php deleted file mode 100644 index 735d972..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170511.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - {{ $p->tanggal_masuk ? \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') : '-' }} - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170513.php b/.history/resources/views/rt/penghuni/index.blade_20260416170513.php deleted file mode 100644 index f48aa82..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170513.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170518.php b/.history/resources/views/rt/penghuni/index.blade_20260416170518.php deleted file mode 100644 index 51233e7..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170518.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tanggal_masuk ? \Carbon\Carbon::parse($p->tanggal_masuk)->format('d-m-Y') : '-' }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170549.php b/.history/resources/views/rt/penghuni/index.blade_20260416170549.php deleted file mode 100644 index 9aa45df..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170549.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tgl_masuk }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170625.php b/.history/resources/views/rt/penghuni/index.blade_20260416170625.php deleted file mode 100644 index 2fe3511..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170625.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->ta_masuk }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170627.php b/.history/resources/views/rt/penghuni/index.blade_20260416170627.php deleted file mode 100644 index b8262d5..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170627.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tangga_masuk }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/rt/penghuni/index.blade_20260416170628.php b/.history/resources/views/rt/penghuni/index.blade_20260416170628.php deleted file mode 100644 index f48aa82..0000000 --- a/.history/resources/views/rt/penghuni/index.blade_20260416170628.php +++ /dev/null @@ -1,60 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

👥 Data Penghuni (RT)

- -
-
- - - - - - - - - - - - - - - - - - - - @foreach($penghuni as $p) - - - - - - {{-- 🔥 EMAIL DIHILANGKAN --}} - - - - - - - - - - - - - - @endforeach - - -
IDNamaNo KTPNo HPAlamatBlokNo RumahStatusStatus HuniTanggal MasukTanggal Keluar
{{ $p->id }}{{ $p->nama }}{{ $p->no_ktp }}{{ $p->telepon }}{{ $p->alamat }}{{ $p->rumah->blok ?? '-' }}{{ $p->rumah->no_rumah ?? '-' }} - Aktif - {{ $p->status_huni }}{{ $p->tanggal_masuk }}{{ $p->tanggal_keluar ?? '-' }}
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/dashboard.blade_20250819093337.php b/.history/resources/views/user/dashboard.blade_20250819093337.php deleted file mode 100644 index 7ac7cb2..0000000 --- a/.history/resources/views/user/dashboard.blade_20250819093337.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/user/dashboard.blade_20260329230309.php b/.history/resources/views/user/dashboard.blade_20260329230309.php deleted file mode 100644 index f3eb98f..0000000 --- a/.history/resources/views/user/dashboard.blade_20260329230309.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.use') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/user/dashboard.blade_20260329230311.php b/.history/resources/views/user/dashboard.blade_20260329230311.php deleted file mode 100644 index 5130130..0000000 --- a/.history/resources/views/user/dashboard.blade_20260329230311.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.user') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/user/dashboard.blade_20260329233159.php b/.history/resources/views/user/dashboard.blade_20260329233159.php deleted file mode 100644 index 7ac7cb2..0000000 --- a/.history/resources/views/user/dashboard.blade_20260329233159.php +++ /dev/null @@ -1,143 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/user/dashboard.blade_20260410155432.php b/.history/resources/views/user/dashboard.blade_20260410155432.php deleted file mode 100644 index 0ccd7a1..0000000 --- a/.history/resources/views/user/dashboard.blade_20260410155432.php +++ /dev/null @@ -1,159 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
- - -
- -
-
-
-
Statistik Pengaduan
-
-
- -
-
-
- -
-@endsection - -@push('scripts') - - -@endpush diff --git a/.history/resources/views/user/dashboard.blade_20260410155449.php b/.history/resources/views/user/dashboard.blade_20260410155449.php deleted file mode 100644 index eb768f3..0000000 --- a/.history/resources/views/user/dashboard.blade_20260410155449.php +++ /dev/null @@ -1,193 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - -

Dashboard

- - -
- - -
-
-
-
-
-
- Total Penghuni
-
120
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Jumlah Rumah
-
85
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Laporan Masuk
-
15
-
-
- -
-
-
-
-
- - -
-
-
-
-
-
- Transaksi
-
Rp 12.500.000
-
-
- -
-
-
-
-
-
- - -
- - -
-
-
-
Statistik Penghuni
-
-
- -
-
-
- - -
-
-
-
Informasi
-
-
-

Selamat datang di Green View Dashboard!
- Sistem ini membantu dalam pengelolaan penghuni, rumah, laporan, dan transaksi perumahan.

- Lihat Laporan -
-
-
-
- -
- - -
- -
-
-
-
Statistik Pengaduan
-
-
- -
-
-
- -
-@endsection - -@push('scripts') - - -@endpush - - diff --git a/.history/resources/views/user/data_iuran.blade_20260401113508.php b/.history/resources/views/user/data_iuran.blade_20260401113508.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/data_iuran.blade_20260401113645.php b/.history/resources/views/user/data_iuran.blade_20260401113645.php deleted file mode 100644 index 2212c42..0000000 --- a/.history/resources/views/user/data_iuran.blade_20260401113645.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pengaduan

-
-@endsection diff --git a/.history/resources/views/user/data_iuran.blade_20260401113650.php b/.history/resources/views/user/data_iuran.blade_20260401113650.php deleted file mode 100644 index 597cb6d..0000000 --- a/.history/resources/views/user/data_iuran.blade_20260401113650.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

data iuran

-
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331090803.php b/.history/resources/views/user/home.blade_20260331090803.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/home.blade_20260331090852.php b/.history/resources/views/user/home.blade_20260331090852.php deleted file mode 100644 index 7d60e2f..0000000 --- a/.history/resources/views/user/home.blade_20260331090852.php +++ /dev/null @@ -1,34 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331123659.php b/.history/resources/views/user/home.blade_20260331123659.php deleted file mode 100644 index 02af44a..0000000 --- a/.history/resources/views/user/home.blade_20260331123659.php +++ /dev/null @@ -1,36 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331123701.php b/.history/resources/views/user/home.blade_20260331123701.php deleted file mode 100644 index de4e0ca..0000000 --- a/.history/resources/views/user/home.blade_20260331123701.php +++ /dev/null @@ -1,70 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
-
-
-@endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331123716.php b/.history/resources/views/user/home.blade_20260331123716.php deleted file mode 100644 index ad962c9..0000000 --- a/.history/resources/views/user/home.blade_20260331123716.php +++ /dev/null @@ -1,70 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331125439.php b/.history/resources/views/user/home.blade_20260331125439.php deleted file mode 100644 index 20b8131..0000000 --- a/.history/resources/views/user/home.blade_20260331125439.php +++ /dev/null @@ -1,72 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331125441.php b/.history/resources/views/user/home.blade_20260331125441.php deleted file mode 100644 index ddf5b38..0000000 --- a/.history/resources/views/user/home.blade_20260331125441.php +++ /dev/null @@ -1,79 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331125445.php b/.history/resources/views/user/home.blade_20260331125445.php deleted file mode 100644 index fc26786..0000000 --- a/.history/resources/views/user/home.blade_20260331125445.php +++ /dev/null @@ -1,79 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331132741.php b/.history/resources/views/user/home.blade_20260331132741.php deleted file mode 100644 index 65849d6..0000000 --- a/.history/resources/views/user/home.blade_20260331132741.php +++ /dev/null @@ -1,81 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331132745.php b/.history/resources/views/user/home.blade_20260331132745.php deleted file mode 100644 index 77089cf..0000000 --- a/.history/resources/views/user/home.blade_20260331132745.php +++ /dev/null @@ -1,84 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331132939.php b/.history/resources/views/user/home.blade_20260331132939.php deleted file mode 100644 index 476d6e2..0000000 --- a/.history/resources/views/user/home.blade_20260331132939.php +++ /dev/null @@ -1,84 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260331133335.php b/.history/resources/views/user/home.blade_20260331133335.php deleted file mode 100644 index d5b0a31..0000000 --- a/.history/resources/views/user/home.blade_20260331133335.php +++ /dev/null @@ -1,97 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

-
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection - - diff --git a/.history/resources/views/user/home.blade_20260331134331.php b/.history/resources/views/user/home.blade_20260331134331.php deleted file mode 100644 index 9c852ac..0000000 --- a/.history/resources/views/user/home.blade_20260331134331.php +++ /dev/null @@ -1,118 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- - {{-- 🔥 TAMBAHAN --}} -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection - -{{-- 🔥 SCRIPT WAJIB DI SECTION --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331134619.php b/.history/resources/views/user/home.blade_20260331134619.php deleted file mode 100644 index 6c000c0..0000000 --- a/.history/resources/views/user/home.blade_20260331134619.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- - {{-- 🔥 TAMBAHAN --}} -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection - -{{-- 🔥 SCRIPT WAJIB DI SECTION --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331134700.php b/.history/resources/views/user/home.blade_20260331134700.php deleted file mode 100644 index c5fa599..0000000 --- a/.history/resources/views/user/home.blade_20260331134700.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- - {{-- 🔥 TAMBAHAN --}} -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection - -{{-- 🔥 SCRIPT WAJIB DI SECTION --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331134813.php b/.history/resources/views/user/home.blade_20260331134813.php deleted file mode 100644 index 055daf4..0000000 --- a/.history/resources/views/user/home.blade_20260331134813.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- - {{-- 🔥 TAMBAHAN --}} -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection - -{{-- 🔥 SCRIPT WAJIB DI SECTION --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331135045.php b/.history/resources/views/user/home.blade_20260331135045.php deleted file mode 100644 index 4722b3a..0000000 --- a/.history/resources/views/user/home.blade_20260331135045.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- - {{-- 🔥 TAMBAHAN --}} -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
-
- @endif - -
-@endsection - -{{-- 🔥 SCRIPT WAJIB DI SECTION --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331135928.php b/.history/resources/views/user/home.blade_20260331135928.php deleted file mode 100644 index 3339963..0000000 --- a/.history/resources/views/user/home.blade_20260331135928.php +++ /dev/null @@ -1,137 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔥 ERROR VALIDATION --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 FIX: pakai d-none biar tetap terkirim --}} -
- - -
- - -
-
-
- @endif - -
-@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331141346.php b/.history/resources/views/user/home.blade_20260331141346.php deleted file mode 100644 index da80448..0000000 --- a/.history/resources/views/user/home.blade_20260331141346.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔥 ERROR VALIDATION --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 FIX: pakai d-none biar tetap terkirim --}} -
- - -
- - -
-
-
- @endif - -
-@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260331141351.php b/.history/resources/views/user/home.blade_20260331141351.php deleted file mode 100644 index a9bdebd..0000000 --- a/.history/resources/views/user/home.blade_20260331141351.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔥 ERROR VALIDATION --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 FIX: pakai d-none biar tetap terkirim --}} -
- - -
- - -
-
-
- @endif - -
-@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260401012415.php b/.history/resources/views/user/home.blade_20260401012415.php deleted file mode 100644 index c4bf527..0000000 --- a/.history/resources/views/user/home.blade_20260401012415.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔥 ERROR VALIDATION --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 FIX: pakai d-none biar tetap terkirim --}} -
- - -
- - -
-
-
- @endif - -
-@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/user/home.blade_20260408194112.php b/.history/resources/views/user/home.blade_20260408194112.php deleted file mode 100644 index 05f3e70..0000000 --- a/.history/resources/views/user/home.blade_20260408194112.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran) -
-
- -
Progress Pembayaran Iuran
- -
- - {{-- STEP 1 --}} -
- @if($iuran->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($iuran->status == 'lunas') -
- @elseif($iuran->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($iuran->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($iuran->status == 'lunas') - Lunas - @elseif($iuran->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408194114.php b/.history/resources/views/user/home.blade_20260408194114.php deleted file mode 100644 index 05f3e70..0000000 --- a/.history/resources/views/user/home.blade_20260408194114.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran) -
-
- -
Progress Pembayaran Iuran
- -
- - {{-- STEP 1 --}} -
- @if($iuran->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($iuran->status == 'lunas') -
- @elseif($iuran->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($iuran->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($iuran->status == 'lunas') - Lunas - @elseif($iuran->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408213537.php b/.history/resources/views/user/home.blade_20260408213537.php deleted file mode 100644 index 05f3e70..0000000 --- a/.history/resources/views/user/home.blade_20260408213537.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran) -
-
- -
Progress Pembayaran Iuran
- -
- - {{-- STEP 1 --}} -
- @if($iuran->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($iuran->status == 'lunas') -
- @elseif($iuran->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($iuran->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($iuran->status == 'lunas') - Lunas - @elseif($iuran->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408213541.php b/.history/resources/views/user/home.blade_20260408213541.php deleted file mode 100644 index c4bf527..0000000 --- a/.history/resources/views/user/home.blade_20260408213541.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔥 ERROR VALIDATION --}} - @if ($errors->any()) -
-
    - @foreach ($errors->all() as $error) -
  • {{ $error }}
  • - @endforeach -
-
- @endif - - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif - -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{-- 🔥 FIX: pakai d-none biar tetap terkirim --}} -
- - -
- - -
-
-
- @endif - -
-@endsection - -@section('scripts') - -@endsection - - diff --git a/.history/resources/views/user/home.blade_20260408213546.php b/.history/resources/views/user/home.blade_20260408213546.php deleted file mode 100644 index 05f3e70..0000000 --- a/.history/resources/views/user/home.blade_20260408213546.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran) -
-
- -
Progress Pembayaran Iuran
- -
- - {{-- STEP 1 --}} -
- @if($iuran->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($iuran->status == 'lunas') -
- @elseif($iuran->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($iuran->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($iuran->status == 'lunas') - Lunas - @elseif($iuran->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408213550.php b/.history/resources/views/user/home.blade_20260408213550.php deleted file mode 100644 index 05f3e70..0000000 --- a/.history/resources/views/user/home.blade_20260408213550.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran) -
-
- -
Progress Pembayaran Iuran
- -
- - {{-- STEP 1 --}} -
- @if($iuran->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($iuran->status == 'lunas') -
- @elseif($iuran->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($iuran->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($iuran->status == 'lunas') - Lunas - @elseif($iuran->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408214150.php b/.history/resources/views/user/home.blade_20260408214150.php deleted file mode 100644 index 2f4b8ba..0000000 --- a/.history/resources/views/user/home.blade_20260408214150.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) - @foreach($iuran as $i) -
-
- -
Progress Iuran {{ $i->bulan }} {{ $i->tahun }}
- -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach -@endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408214153.php b/.history/resources/views/user/home.blade_20260408214153.php deleted file mode 100644 index 05f3e70..0000000 --- a/.history/resources/views/user/home.blade_20260408214153.php +++ /dev/null @@ -1,171 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran) -
-
- -
Progress Pembayaran Iuran
- -
- - {{-- STEP 1 --}} -
- @if($iuran->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($iuran->status == 'lunas') -
- @elseif($iuran->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($iuran->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($iuran->status == 'lunas') - Lunas - @elseif($iuran->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408214201.php b/.history/resources/views/user/home.blade_20260408214201.php deleted file mode 100644 index 5525499..0000000 --- a/.history/resources/views/user/home.blade_20260408214201.php +++ /dev/null @@ -1,173 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) - @foreach($iuran as $i) -
-
- -
Progress Iuran {{ $i->bulan }} {{ $i->tahun }}
- -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach -@endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260408214210.php b/.history/resources/views/user/home.blade_20260408214210.php deleted file mode 100644 index 179399c..0000000 --- a/.history/resources/views/user/home.blade_20260408214210.php +++ /dev/null @@ -1,173 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) - @foreach($iuran as $i) -
-
- -
Progress Iuran {{ $i->bulan }} {{ $i->tahun }}
- -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
-
-
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
-
-
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260409083052.php b/.history/resources/views/user/home.blade_20260409083052.php deleted file mode 100644 index 2770105..0000000 --- a/.history/resources/views/user/home.blade_20260409083052.php +++ /dev/null @@ -1,214 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- - - - - - - - - - - - - - @foreach($iuran as $i) - - {{-- BULAN --}} - - - {{-- TANGGAL --}} - - - {{-- PROGRESS --}} - - - {{-- STATUS --}} - - - {{-- AKSI --}} - - - - @endforeach - - -
BulanTanggal BayarProgressStatusAksi
{{ $i->bulan }} {{ $i->tahun }} - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} - -
- - {{-- STEP 1 --}} - @if($i->bukti_pembayaran) - ✔ Upload - @else - Upload - @endif - - {{-- STEP 2 --}} - @if($i->status == 'lunas') - ✔ Verifikasi - @elseif($i->bukti_pembayaran) - Proses - @else - Verifikasi - @endif - - {{-- STEP 3 --}} - @if($i->status == 'lunas') - ✔ Selesai - @else - Selesai - @endif - -
-
- @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{-- BAYAR --}} - @if($i->status != 'lunas') - - Bayar - - @endif - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - - -
-
- -
-
-@endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260409083107.php b/.history/resources/views/user/home.blade_20260409083107.php deleted file mode 100644 index 6190550..0000000 --- a/.history/resources/views/user/home.blade_20260409083107.php +++ /dev/null @@ -1,214 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- - - - - - - - - - - - - - @foreach($iuran as $i) - - {{-- BULAN --}} - - - {{-- TANGGAL --}} - - - {{-- PROGRESS --}} - - - {{-- STATUS --}} - - - {{-- AKSI --}} - - - - @endforeach - - -
BulanTanggal BayarProgressStatusAksi
{{ $i->bulan }} {{ $i->tahun }} - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} - -
- - {{-- STEP 1 --}} - @if($i->bukti_pembayaran) - ✔ Upload - @else - Upload - @endif - - {{-- STEP 2 --}} - @if($i->status == 'lunas') - ✔ Verifikasi - @elseif($i->bukti_pembayaran) - Proses - @else - Verifikasi - @endif - - {{-- STEP 3 --}} - @if($i->status == 'lunas') - ✔ Selesai - @else - Selesai - @endif - -
-
- @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - {{-- BAYAR --}} - @if($i->status != 'lunas') - - Bayar - - @endif - - {{-- HAPUS --}} -
- @csrf - @method('DELETE') - - -
-
- -
-
- @endif - - @else -
- Data penghuni belum tersedia -
- @endif - -
-@endsection diff --git a/.history/resources/views/user/home.blade_20260409084206.php b/.history/resources/views/user/home.blade_20260409084206.php deleted file mode 100644 index 0cc0c5d..0000000 --- a/.history/resources/views/user/home.blade_20260409084206.php +++ /dev/null @@ -1,198 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- - - - - - - - - - - - - -@if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach -@endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084215.php b/.history/resources/views/user/home.blade_20260409084215.php deleted file mode 100644 index aa6a497..0000000 --- a/.history/resources/views/user/home.blade_20260409084215.php +++ /dev/null @@ -1,198 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084241.php b/.history/resources/views/user/home.blade_20260409084241.php deleted file mode 100644 index 08c0581..0000000 --- a/.history/resources/views/user/home.blade_20260409084241.php +++ /dev/null @@ -1,219 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection - - diff --git a/.history/resources/views/user/home.blade_20260409084317.php b/.history/resources/views/user/home.blade_20260409084317.php deleted file mode 100644 index 1077bc5..0000000 --- a/.history/resources/views/user/home.blade_20260409084317.php +++ /dev/null @@ -1,200 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection - - diff --git a/.history/resources/views/user/home.blade_20260409084320.php b/.history/resources/views/user/home.blade_20260409084320.php deleted file mode 100644 index ce59cdb..0000000 --- a/.history/resources/views/user/home.blade_20260409084320.php +++ /dev/null @@ -1,220 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - - -@endsection - - diff --git a/.history/resources/views/user/home.blade_20260409084334.php b/.history/resources/views/user/home.blade_20260409084334.php deleted file mode 100644 index 1077bc5..0000000 --- a/.history/resources/views/user/home.blade_20260409084334.php +++ /dev/null @@ -1,200 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection - - diff --git a/.history/resources/views/user/home.blade_20260409084339.php b/.history/resources/views/user/home.blade_20260409084339.php deleted file mode 100644 index c2aa715..0000000 --- a/.history/resources/views/user/home.blade_20260409084339.php +++ /dev/null @@ -1,198 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084343.php b/.history/resources/views/user/home.blade_20260409084343.php deleted file mode 100644 index d3ecc08..0000000 --- a/.history/resources/views/user/home.blade_20260409084343.php +++ /dev/null @@ -1,149 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084347.php b/.history/resources/views/user/home.blade_20260409084347.php deleted file mode 100644 index c2aa715..0000000 --- a/.history/resources/views/user/home.blade_20260409084347.php +++ /dev/null @@ -1,198 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084403.php b/.history/resources/views/user/home.blade_20260409084403.php deleted file mode 100644 index 49d9d21..0000000 --- a/.history/resources/views/user/home.blade_20260409084403.php +++ /dev/null @@ -1,198 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084423.php b/.history/resources/views/user/home.blade_20260409084423.php deleted file mode 100644 index 0cc0c5d..0000000 --- a/.history/resources/views/user/home.blade_20260409084423.php +++ /dev/null @@ -1,198 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - -@if($iuran->count()) - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- INFO --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

-

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - @else - Belum Bayar - @endif -
- -
-
- @endforeach -@endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084631.php b/.history/resources/views/user/home.blade_20260409084631.php deleted file mode 100644 index 9ce3ea9..0000000 --- a/.history/resources/views/user/home.blade_20260409084631.php +++ /dev/null @@ -1,161 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - -@if($iuran && $iuran->count()) - @foreach($iuran as $i) - -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif - -
- -
-
- - @endforeach -@endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084644.php b/.history/resources/views/user/home.blade_20260409084644.php deleted file mode 100644 index 444815a..0000000 --- a/.history/resources/views/user/home.blade_20260409084644.php +++ /dev/null @@ -1,161 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran && $iuran->count()) - @foreach($iuran as $i) - -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif - -
- -
-
- - @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084752.php b/.history/resources/views/user/home.blade_20260409084752.php deleted file mode 100644 index 8772211..0000000 --- a/.history/resources/views/user/home.blade_20260409084752.php +++ /dev/null @@ -1,161 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran && $iuran->count()) - @foreach($iuran as $i) - -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif - -
- -
-
- - @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409084756.php b/.history/resources/views/user/home.blade_20260409084756.php deleted file mode 100644 index 444815a..0000000 --- a/.history/resources/views/user/home.blade_20260409084756.php +++ /dev/null @@ -1,161 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -

Beranda Penghuni

- - @if($penghuni) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - - {{-- 🔥 PROGRESS IURAN --}} - @if($iuran->count()) -
-
- -
Riwayat Iuran
- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - - - - - @if($iuran && $iuran->count()) - @foreach($iuran as $i) - -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif($i->bukti_pembayaran) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif - -
- -
-
- - @endforeach - @endif - - @else -
- Data penghuni belum tersedia -
- @endif - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409085143.php b/.history/resources/views/user/home.blade_20260409085143.php deleted file mode 100644 index 588ed74..0000000 --- a/.history/resources/views/user/home.blade_20260409085143.php +++ /dev/null @@ -1,156 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409085651.php b/.history/resources/views/user/home.blade_20260409085651.php deleted file mode 100644 index b67ad63..0000000 --- a/.history/resources/views/user/home.blade_20260409085651.php +++ /dev/null @@ -1,169 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409085656.php b/.history/resources/views/user/home.blade_20260409085656.php deleted file mode 100644 index cbb1c59..0000000 --- a/.history/resources/views/user/home.blade_20260409085656.php +++ /dev/null @@ -1,169 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409085657.php b/.history/resources/views/user/home.blade_20260409085657.php deleted file mode 100644 index b47ef81..0000000 --- a/.history/resources/views/user/home.blade_20260409085657.php +++ /dev/null @@ -1,169 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409091423.php b/.history/resources/views/user/home.blade_20260409091423.php deleted file mode 100644 index a0eb97e..0000000 --- a/.history/resources/views/user/home.blade_20260409091423.php +++ /dev/null @@ -1,169 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - -@endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409091428.php b/.history/resources/views/user/home.blade_20260409091428.php deleted file mode 100644 index eabaaa5..0000000 --- a/.history/resources/views/user/home.blade_20260409091428.php +++ /dev/null @@ -1,169 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409113728.php b/.history/resources/views/user/home.blade_20260409113728.php deleted file mode 100644 index a91a704..0000000 --- a/.history/resources/views/user/home.blade_20260409113728.php +++ /dev/null @@ -1,224 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
-@endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409113734.php b/.history/resources/views/user/home.blade_20260409113734.php deleted file mode 100644 index 190537b..0000000 --- a/.history/resources/views/user/home.blade_20260409113734.php +++ /dev/null @@ -1,224 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260409113806.php b/.history/resources/views/user/home.blade_20260409113806.php deleted file mode 100644 index e85f8c1..0000000 --- a/.history/resources/views/user/home.blade_20260409113806.php +++ /dev/null @@ -1,249 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410130657.php b/.history/resources/views/user/home.blade_20260410130657.php deleted file mode 100644 index 41e08b9..0000000 --- a/.history/resources/views/user/home.blade_20260410130657.php +++ /dev/null @@ -1,251 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410131005.php b/.history/resources/views/user/home.blade_20260410131005.php deleted file mode 100644 index 1945760..0000000 --- a/.history/resources/views/user/home.blade_20260410131005.php +++ /dev/null @@ -1,258 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410131010.php b/.history/resources/views/user/home.blade_20260410131010.php deleted file mode 100644 index 1040931..0000000 --- a/.history/resources/views/user/home.blade_20260410131010.php +++ /dev/null @@ -1,258 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410131034.php b/.history/resources/views/user/home.blade_20260410131034.php deleted file mode 100644 index ffc5a3b..0000000 --- a/.history/resources/views/user/home.blade_20260410131034.php +++ /dev/null @@ -1,256 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410131035.php b/.history/resources/views/user/home.blade_20260410131035.php deleted file mode 100644 index ffc5a3b..0000000 --- a/.history/resources/views/user/home.blade_20260410131035.php +++ /dev/null @@ -1,256 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410131042.php b/.history/resources/views/user/home.blade_20260410131042.php deleted file mode 100644 index 449fbd7..0000000 --- a/.history/resources/views/user/home.blade_20260410131042.php +++ /dev/null @@ -1,257 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410131055.php b/.history/resources/views/user/home.blade_20260410131055.php deleted file mode 100644 index d58f1e9..0000000 --- a/.history/resources/views/user/home.blade_20260410131055.php +++ /dev/null @@ -1,257 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161121.php b/.history/resources/views/user/home.blade_20260410161121.php deleted file mode 100644 index 4499e31..0000000 --- a/.history/resources/views/user/home.blade_20260410161121.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161134.php b/.history/resources/views/user/home.blade_20260410161134.php deleted file mode 100644 index 7fa58c1..0000000 --- a/.history/resources/views/user/home.blade_20260410161134.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -

Data Iuran Saya

- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161155.php b/.history/resources/views/user/home.blade_20260410161155.php deleted file mode 100644 index 933b783..0000000 --- a/.history/resources/views/user/home.blade_20260410161155.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -

Status

- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161158.php b/.history/resources/views/user/home.blade_20260410161158.php deleted file mode 100644 index ee5c48a..0000000 --- a/.history/resources/views/user/home.blade_20260410161158.php +++ /dev/null @@ -1,259 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - -

Status Pengaduan

- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161214.php b/.history/resources/views/user/home.blade_20260410161214.php deleted file mode 100644 index 361cec6..0000000 --- a/.history/resources/views/user/home.blade_20260410161214.php +++ /dev/null @@ -1,346 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->take(3) - ->get(); -@endphp - -@if($pengaduan->count() > 0) - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
-
- Diajukan -
- - {{-- STEP 2 --}} -
- @if($p->status == 'diproses' || $p->status == 'selesai') -
- @else -
- @endif - Diproses -
- - {{-- STEP 3 --}} -
- @if($p->status == 'selesai') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161241.php b/.history/resources/views/user/home.blade_20260410161241.php deleted file mode 100644 index bc0ce4b..0000000 --- a/.history/resources/views/user/home.blade_20260410161241.php +++ /dev/null @@ -1,370 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->take(3) - ->get(); -@endphp - -@if($pengaduan->count() > 0) - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
-
- Diajukan -
- - {{-- STEP 2 --}} -
- @if($p->status == 'diproses' || $p->status == 'selesai') -
- @else -
- @endif - Diproses -
- - {{-- STEP 3 --}} -
- @if($p->status == 'selesai') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161426.php b/.history/resources/views/user/home.blade_20260410161426.php deleted file mode 100644 index 08df42d..0000000 --- a/.history/resources/views/user/home.blade_20260410161426.php +++ /dev/null @@ -1,371 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->take(3) - ->get(); -@endphp - -@if($pengaduan->count() > 0) - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410161444.php b/.history/resources/views/user/home.blade_20260410161444.php deleted file mode 100644 index 6a8a95e..0000000 --- a/.history/resources/views/user/home.blade_20260410161444.php +++ /dev/null @@ -1,427 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->take(3) - ->get(); -@endphp - -@if($pengaduan->count() > 0) - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162129.php b/.history/resources/views/user/home.blade_20260410162129.php deleted file mode 100644 index 30b178e..0000000 --- a/.history/resources/views/user/home.blade_20260410162129.php +++ /dev/null @@ -1,426 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - -@foreach($pengaduan as $p) - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162143.php b/.history/resources/views/user/home.blade_20260410162143.php deleted file mode 100644 index d44f054..0000000 --- a/.history/resources/views/user/home.blade_20260410162143.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - -@foreach($pengaduan as $p) - -
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - -
- -@endforeach - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162510.php b/.history/resources/views/user/home.blade_20260410162510.php deleted file mode 100644 index 04e73ec..0000000 --- a/.history/resources/views/user/home.blade_20260410162510.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - -{{-- @foreach($pengaduan as $p) - -
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - -
- -@endforeach --}} - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162512.php b/.history/resources/views/user/home.blade_20260410162512.php deleted file mode 100644 index 04e73ec..0000000 --- a/.history/resources/views/user/home.blade_20260410162512.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - -{{-- @foreach($pengaduan as $p) - -
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - -
- -@endforeach --}} - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162515.php b/.history/resources/views/user/home.blade_20260410162515.php deleted file mode 100644 index d44f054..0000000 --- a/.history/resources/views/user/home.blade_20260410162515.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - -@foreach($pengaduan as $p) - -
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - -
- -@endforeach - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162516.php b/.history/resources/views/user/home.blade_20260410162516.php deleted file mode 100644 index c714b4f..0000000 --- a/.history/resources/views/user/home.blade_20260410162516.php +++ /dev/null @@ -1,426 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162518.php b/.history/resources/views/user/home.blade_20260410162518.php deleted file mode 100644 index 170fae6..0000000 --- a/.history/resources/views/user/home.blade_20260410162518.php +++ /dev/null @@ -1,425 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162547.php b/.history/resources/views/user/home.blade_20260410162547.php deleted file mode 100644 index 975d042..0000000 --- a/.history/resources/views/user/home.blade_20260410162547.php +++ /dev/null @@ -1,403 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@forelse($pengaduan as $p) - -
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- -@empty - -
- Belum ada pengaduan -
- -@endforelse - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162626.php b/.history/resources/views/user/home.blade_20260410162626.php deleted file mode 100644 index 170fae6..0000000 --- a/.history/resources/views/user/home.blade_20260410162626.php +++ /dev/null @@ -1,425 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162652.php b/.history/resources/views/user/home.blade_20260410162652.php deleted file mode 100644 index 7a57515..0000000 --- a/.history/resources/views/user/home.blade_20260410162652.php +++ /dev/null @@ -1,401 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- -@empty - -
- Belum ada pengaduan -
- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162703.php b/.history/resources/views/user/home.blade_20260410162703.php deleted file mode 100644 index 170fae6..0000000 --- a/.history/resources/views/user/home.blade_20260410162703.php +++ /dev/null @@ -1,425 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162712.php b/.history/resources/views/user/home.blade_20260410162712.php deleted file mode 100644 index 4ee6e10..0000000 --- a/.history/resources/views/user/home.blade_20260410162712.php +++ /dev/null @@ -1,426 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162717.php b/.history/resources/views/user/home.blade_20260410162717.php deleted file mode 100644 index 7a57515..0000000 --- a/.history/resources/views/user/home.blade_20260410162717.php +++ /dev/null @@ -1,401 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- -@empty - -
- Belum ada pengaduan -
- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162734.php b/.history/resources/views/user/home.blade_20260410162734.php deleted file mode 100644 index 170fae6..0000000 --- a/.history/resources/views/user/home.blade_20260410162734.php +++ /dev/null @@ -1,425 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162736.php b/.history/resources/views/user/home.blade_20260410162736.php deleted file mode 100644 index 4ee6e10..0000000 --- a/.history/resources/views/user/home.blade_20260410162736.php +++ /dev/null @@ -1,426 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162746.php b/.history/resources/views/user/home.blade_20260410162746.php deleted file mode 100644 index 7a57515..0000000 --- a/.history/resources/views/user/home.blade_20260410162746.php +++ /dev/null @@ -1,401 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- -@empty - -
- Belum ada pengaduan -
- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162750.php b/.history/resources/views/user/home.blade_20260410162750.php deleted file mode 100644 index 170fae6..0000000 --- a/.history/resources/views/user/home.blade_20260410162750.php +++ /dev/null @@ -1,425 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162752.php b/.history/resources/views/user/home.blade_20260410162752.php deleted file mode 100644 index 7a57515..0000000 --- a/.history/resources/views/user/home.blade_20260410162752.php +++ /dev/null @@ -1,401 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- -@empty - -
- Belum ada pengaduan -
- -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162753.php b/.history/resources/views/user/home.blade_20260410162753.php deleted file mode 100644 index 170fae6..0000000 --- a/.history/resources/views/user/home.blade_20260410162753.php +++ /dev/null @@ -1,425 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - - -@foreach($pengaduan as $p) -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- PROGRESS --}} -
- -
- - {{-- STEP 1 --}} -
-
📩
-

Diajukan

-
- - {{-- STEP 2 --}} -
-
⚙️
-

Diproses

-
- - {{-- STEP 3 --}} -
-
-

Selesai

-
- - {{-- GARIS --}} -
- -
- -
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
-@endforeach - -@else -
- Belum ada pengaduan -
-@endif - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260410162950.php b/.history/resources/views/user/home.blade_20260410162950.php deleted file mode 100644 index a83f937..0000000 --- a/.history/resources/views/user/home.blade_20260410162950.php +++ /dev/null @@ -1,417 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - @if(!$penghuni) -
-
- Lengkapi Data Penghuni -
- -
-
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - -
-
- @endif - - {{-- DATA PENGHUNI --}} - @if(isset($penghuni)) -
-
-
Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - @if($penghuni->status_huni == 'Tetap') - Tetap - @else - Kontrak - @endif -

- - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

- @endif -
-
- - {{-- RUMAH --}} - @if($penghuni->rumah) -
-
-
Rumah Anda
-

Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @endif - @endif - - - {{-- ========================= --}} - {{-- 🔥 DATA IURAN FINAL --}} - {{-- ========================= --}} -

Data Iuran Saya

- - @if(isset($iuran) && count($iuran) > 0) - - @foreach($iuran as $i) -
-
- - {{-- JUDUL --}} -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- - {{-- JUMLAH --}} -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- - {{-- JENIS IURAN --}} -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - {{-- TANGGAL --}} -

Tanggal Bayar: - {{ $i->tanggal_bayar - ? \Carbon\Carbon::parse($i->tanggal_bayar)->translatedFormat('d M Y') - : '-' }} -

- - {{-- PROGRESS --}} -
- - {{-- STEP 1 --}} -
- @if($i->bukti_pembayaran) -
- @else -
- @endif - Upload -
- - {{-- STEP 2 --}} -
- @if($i->status == 'lunas') -
- @elseif($i->bukti_pembayaran) -
- @else -
2
- @endif - Verifikasi -
- - {{-- STEP 3 --}} -
- @if($i->status == 'lunas') -
- @else -
3
- @endif - Selesai -
- -
- - {{-- STATUS --}} -
- Status: - - @if($i->status == 'lunas') - Lunas - - @elseif(!empty($i->bukti_pembayaran)) - Menunggu Verifikasi - - @else - Belum Bayar - - @endif -
- -
- -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @endif -
-
- @endforeach - - @else -
- Belum ada data iuran -
- @endif - - {{-- ========================= --}} -{{-- 🔥 STATUS PENGADUAN HOME --}} -{{-- ========================= --}} -

Status Pengaduan Saya

- -@php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0) - ->latest() - ->get(); -@endphp - -@forelse($pengaduan as $p) - -
-
- - {{-- HEADER --}} -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- - {{-- DESKRIPSI --}} -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
- -
-
📩
-

Diajukan

-
- -
-
⚙️
-

Diproses

-
- -
-
-

Selesai

-
- -
-
- - {{-- TANGGAL --}} -
- {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} -
- - {{-- TANGGAPAN --}} - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- -@empty - -
- Belum ada pengaduan -
- -@endforelse - -
-@endsection - - -{{-- 🔥 STYLE --}} -@section('scripts') - -@endsection - -@section('scripts') - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200257.php b/.history/resources/views/user/home.blade_20260413200257.php deleted file mode 100644 index be00cc2..0000000 --- a/.history/resources/views/user/home.blade_20260413200257.php +++ /dev/null @@ -1,205 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200732.php b/.history/resources/views/user/home.blade_20260413200732.php deleted file mode 100644 index 5ed15a6..0000000 --- a/.history/resources/views/user/home.blade_20260413200732.php +++ /dev/null @@ -1,224 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200736.php b/.history/resources/views/user/home.blade_20260413200736.php deleted file mode 100644 index b86eaa4..0000000 --- a/.history/resources/views/user/home.blade_20260413200736.php +++ /dev/null @@ -1,224 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200851.php b/.history/resources/views/user/home.blade_20260413200851.php deleted file mode 100644 index 335477d..0000000 --- a/.history/resources/views/user/home.blade_20260413200851.php +++ /dev/null @@ -1,207 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
- - -
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200853.php b/.history/resources/views/user/home.blade_20260413200853.php deleted file mode 100644 index be00cc2..0000000 --- a/.history/resources/views/user/home.blade_20260413200853.php +++ /dev/null @@ -1,205 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200911.php b/.history/resources/views/user/home.blade_20260413200911.php deleted file mode 100644 index 2dc2ecc..0000000 --- a/.history/resources/views/user/home.blade_20260413200911.php +++ /dev/null @@ -1,207 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - - @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200921.php b/.history/resources/views/user/home.blade_20260413200921.php deleted file mode 100644 index 4c0db55..0000000 --- a/.history/resources/views/user/home.blade_20260413200921.php +++ /dev/null @@ -1,224 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413200927.php b/.history/resources/views/user/home.blade_20260413200927.php deleted file mode 100644 index bbd889c..0000000 --- a/.history/resources/views/user/home.blade_20260413200927.php +++ /dev/null @@ -1,224 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413201217.php b/.history/resources/views/user/home.blade_20260413201217.php deleted file mode 100644 index b1348a4..0000000 --- a/.history/resources/views/user/home.blade_20260413201217.php +++ /dev/null @@ -1,226 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413201303.php b/.history/resources/views/user/home.blade_20260413201303.php deleted file mode 100644 index eda2c11..0000000 --- a/.history/resources/views/user/home.blade_20260413201303.php +++ /dev/null @@ -1,226 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -
👤 Data Anda
- - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413201311.php b/.history/resources/views/user/home.blade_20260413201311.php deleted file mode 100644 index 00cec1d..0000000 --- a/.history/resources/views/user/home.blade_20260413201311.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -
👤 Data Anda
- {{-- ========================= --}} -{{-- 🏠 RUMAH SAYA --}} -{{-- ========================= --}} -@if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- -@endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413201317.php b/.history/resources/views/user/home.blade_20260413201317.php deleted file mode 100644 index c56c2cb..0000000 --- a/.history/resources/views/user/home.blade_20260413201317.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -
👤 Data Anda
- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413203520.php b/.history/resources/views/user/home.blade_20260413203520.php deleted file mode 100644 index dc5265b..0000000 --- a/.history/resources/views/user/home.blade_20260413203520.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413203532.php b/.history/resources/views/user/home.blade_20260413203532.php deleted file mode 100644 index e2a60c5..0000000 --- a/.history/resources/views/user/home.blade_20260413203532.php +++ /dev/null @@ -1,254 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413203533.php b/.history/resources/views/user/home.blade_20260413203533.php deleted file mode 100644 index 70e18bc..0000000 --- a/.history/resources/views/user/home.blade_20260413203533.php +++ /dev/null @@ -1,253 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah,0,',','.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id,3,'0',STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi,80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260413232706.php b/.history/resources/views/user/home.blade_20260413232706.php deleted file mode 100644 index a91324a..0000000 --- a/.history/resources/views/user/home.blade_20260413232706.php +++ /dev/null @@ -1,304 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414000329.php b/.history/resources/views/user/home.blade_20260414000329.php deleted file mode 100644 index 3856343..0000000 --- a/.history/resources/views/user/home.blade_20260414000329.php +++ /dev/null @@ -1,304 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414000350.php b/.history/resources/views/user/home.blade_20260414000350.php deleted file mode 100644 index a8bdad0..0000000 --- a/.history/resources/views/user/home.blade_20260414000350.php +++ /dev/null @@ -1,304 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414000728.php b/.history/resources/views/user/home.blade_20260414000728.php deleted file mode 100644 index 2b3f27a..0000000 --- a/.history/resources/views/user/home.blade_20260414000728.php +++ /dev/null @@ -1,304 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- -
- @csrf - -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414001059.php b/.history/resources/views/user/home.blade_20260414001059.php deleted file mode 100644 index de54e7f..0000000 --- a/.history/resources/views/user/home.blade_20260414001059.php +++ /dev/null @@ -1,319 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414001125.php b/.history/resources/views/user/home.blade_20260414001125.php deleted file mode 100644 index 40551bf..0000000 --- a/.history/resources/views/user/home.blade_20260414001125.php +++ /dev/null @@ -1,326 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
-@endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414001126.php b/.history/resources/views/user/home.blade_20260414001126.php deleted file mode 100644 index 22d59bd..0000000 --- a/.history/resources/views/user/home.blade_20260414001126.php +++ /dev/null @@ -1,327 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414143612.php b/.history/resources/views/user/home.blade_20260414143612.php deleted file mode 100644 index ed7447b..0000000 --- a/.history/resources/views/user/home.blade_20260414143612.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} -@if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - -@endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414143613.php b/.history/resources/views/user/home.blade_20260414143613.php deleted file mode 100644 index 6b54882..0000000 --- a/.history/resources/views/user/home.blade_20260414143613.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414143716.php b/.history/resources/views/user/home.blade_20260414143716.php deleted file mode 100644 index ba53bfb..0000000 --- a/.history/resources/views/user/home.blade_20260414143716.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414144013.php b/.history/resources/views/user/home.blade_20260414144013.php deleted file mode 100644 index 3c1fc67..0000000 --- a/.history/resources/views/user/home.blade_20260414144013.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414144023.php b/.history/resources/views/user/home.blade_20260414144023.php deleted file mode 100644 index 3c1fc67..0000000 --- a/.history/resources/views/user/home.blade_20260414144023.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414144025.php b/.history/resources/views/user/home.blade_20260414144025.php deleted file mode 100644 index 65f625a..0000000 --- a/.history/resources/views/user/home.blade_20260414144025.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414144110.php b/.history/resources/views/user/home.blade_20260414144110.php deleted file mode 100644 index ba53bfb..0000000 --- a/.history/resources/views/user/home.blade_20260414144110.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414144906.php b/.history/resources/views/user/home.blade_20260414144906.php deleted file mode 100644 index 1dff9c7..0000000 --- a/.history/resources/views/user/home.blade_20260414144906.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- onsubmit="return confirm('Yakin ingin menghapus pengaduan ini?')" class="mt-2"> - - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414145001.php b/.history/resources/views/user/home.blade_20260414145001.php deleted file mode 100644 index 3c1fc67..0000000 --- a/.history/resources/views/user/home.blade_20260414145001.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414145006.php b/.history/resources/views/user/home.blade_20260414145006.php deleted file mode 100644 index 1dff9c7..0000000 --- a/.history/resources/views/user/home.blade_20260414145006.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- onsubmit="return confirm('Yakin ingin menghapus pengaduan ini?')" class="mt-2"> - - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414145007.php b/.history/resources/views/user/home.blade_20260414145007.php deleted file mode 100644 index 3c1fc67..0000000 --- a/.history/resources/views/user/home.blade_20260414145007.php +++ /dev/null @@ -1,342 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414145012.php b/.history/resources/views/user/home.blade_20260414145012.php deleted file mode 100644 index 0a022ee..0000000 --- a/.history/resources/views/user/home.blade_20260414145012.php +++ /dev/null @@ -1,341 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414145340.php b/.history/resources/views/user/home.blade_20260414145340.php deleted file mode 100644 index 6c3dc72..0000000 --- a/.history/resources/views/user/home.blade_20260414145340.php +++ /dev/null @@ -1,341 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414204605.php b/.history/resources/views/user/home.blade_20260414204605.php deleted file mode 100644 index 391986a..0000000 --- a/.history/resources/views/user/home.blade_20260414204605.php +++ /dev/null @@ -1,391 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- -
- - @forelse($informasi as $info) -
- -
- - {{-- 🔥 BADGE PENTING --}} - @if($info->is_penting) - 🔥 Penting - @endif - - {{-- 🔥 GAMBAR --}} - @if($info->gambar) - - @else - - @endif - -
- -
{{ $info->judul }}
- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ Str::limit($info->isi, 80) }} -

- - {{ $info->kategori }} - -
- -
- -
- @empty -

Belum ada informasi

- @endforelse - -
- -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414204607.php b/.history/resources/views/user/home.blade_20260414204607.php deleted file mode 100644 index 8dbd6ed..0000000 --- a/.history/resources/views/user/home.blade_20260414204607.php +++ /dev/null @@ -1,392 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- -
- - @forelse($informasi as $info) -
- -
- - {{-- 🔥 BADGE PENTING --}} - @if($info->is_penting) - 🔥 Penting - @endif - - {{-- 🔥 GAMBAR --}} - @if($info->gambar) - - @else - - @endif - -
- -
{{ $info->judul }}
- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ Str::limit($info->isi, 80) }} -

- - {{ $info->kategori }} - -
- -
- -
- @empty -

Belum ada informasi

- @endforelse - -
- -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414204626.php b/.history/resources/views/user/home.blade_20260414204626.php deleted file mode 100644 index 36749ee..0000000 --- a/.history/resources/views/user/home.blade_20260414204626.php +++ /dev/null @@ -1,407 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- -
- - @forelse($informasi as $info) -
- -
- - {{-- 🔥 BADGE PENTING --}} - @if($info->is_penting) - 🔥 Penting - @endif - - {{-- 🔥 GAMBAR --}} - @if($info->gambar) - - @else - - @endif - -
- -
{{ $info->judul }}
- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ Str::limit($info->isi, 80) }} -

- - {{ $info->kategori }} - -
- -
- -
- @empty -

Belum ada informasi

- @endforelse - -
- -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414204627.php b/.history/resources/views/user/home.blade_20260414204627.php deleted file mode 100644 index f306a67..0000000 --- a/.history/resources/views/user/home.blade_20260414204627.php +++ /dev/null @@ -1,407 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- -
- - @forelse($informasi as $info) -
- -
- - {{-- 🔥 BADGE PENTING --}} - @if($info->is_penting) - 🔥 Penting - @endif - - {{-- 🔥 GAMBAR --}} - @if($info->gambar) - - @else - - @endif - -
- -
{{ $info->judul }}
- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ Str::limit($info->isi, 80) }} -

- - {{ $info->kategori }} - -
- -
- -
- @empty -

Belum ada informasi

- @endforelse - -
- -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414205218.php b/.history/resources/views/user/home.blade_20260414205218.php deleted file mode 100644 index 84b6d37..0000000 --- a/.history/resources/views/user/home.blade_20260414205218.php +++ /dev/null @@ -1,410 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - - - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414205256.php b/.history/resources/views/user/home.blade_20260414205256.php deleted file mode 100644 index 1b7664f..0000000 --- a/.history/resources/views/user/home.blade_20260414205256.php +++ /dev/null @@ -1,414 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - - - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414205257.php b/.history/resources/views/user/home.blade_20260414205257.php deleted file mode 100644 index d3f83d2..0000000 --- a/.history/resources/views/user/home.blade_20260414205257.php +++ /dev/null @@ -1,414 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - - - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414210417.php b/.history/resources/views/user/home.blade_20260414210417.php deleted file mode 100644 index 360ca02..0000000 --- a/.history/resources/views/user/home.blade_20260414210417.php +++ /dev/null @@ -1,414 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- - - - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414215013.php b/.history/resources/views/user/home.blade_20260414215013.php deleted file mode 100644 index 2fe5b89..0000000 --- a/.history/resources/views/user/home.blade_20260414215013.php +++ /dev/null @@ -1,416 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414215015.php b/.history/resources/views/user/home.blade_20260414215015.php deleted file mode 100644 index 17b655c..0000000 --- a/.history/resources/views/user/home.blade_20260414215015.php +++ /dev/null @@ -1,416 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414215032.php b/.history/resources/views/user/home.blade_20260414215032.php deleted file mode 100644 index e857bcf..0000000 --- a/.history/resources/views/user/home.blade_20260414215032.php +++ /dev/null @@ -1,427 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414215036.php b/.history/resources/views/user/home.blade_20260414215036.php deleted file mode 100644 index 7db52e7..0000000 --- a/.history/resources/views/user/home.blade_20260414215036.php +++ /dev/null @@ -1,418 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414215045.php b/.history/resources/views/user/home.blade_20260414215045.php deleted file mode 100644 index d62a5af..0000000 --- a/.history/resources/views/user/home.blade_20260414215045.php +++ /dev/null @@ -1,426 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414215330.php b/.history/resources/views/user/home.blade_20260414215330.php deleted file mode 100644 index 14feca4..0000000 --- a/.history/resources/views/user/home.blade_20260414215330.php +++ /dev/null @@ -1,447 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414215339.php b/.history/resources/views/user/home.blade_20260414215339.php deleted file mode 100644 index e48a8f9..0000000 --- a/.history/resources/views/user/home.blade_20260414215339.php +++ /dev/null @@ -1,465 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414220053.php b/.history/resources/views/user/home.blade_20260414220053.php deleted file mode 100644 index 6b30471..0000000 --- a/.history/resources/views/user/home.blade_20260414220053.php +++ /dev/null @@ -1,470 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414223610.php b/.history/resources/views/user/home.blade_20260414223610.php deleted file mode 100644 index 512f4a5..0000000 --- a/.history/resources/views/user/home.blade_20260414223610.php +++ /dev/null @@ -1,428 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- -{{-- 🔥 SLIDER DI SINI --}} - - -{{-- 🔥 BARU LIST INFORMASI DI BAWAH --}} -@forelse($informasi as $info) - ... -@endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414223641.php b/.history/resources/views/user/home.blade_20260414223641.php deleted file mode 100644 index 4dc5511..0000000 --- a/.history/resources/views/user/home.blade_20260414223641.php +++ /dev/null @@ -1,438 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 SLIDER DI SINI --}} - - - {{-- 🔥 BARU LIST INFORMASI DI BAWAH --}} - @forelse($informasi as $info) - ... - @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414223702.php b/.history/resources/views/user/home.blade_20260414223702.php deleted file mode 100644 index 315fb44..0000000 --- a/.history/resources/views/user/home.blade_20260414223702.php +++ /dev/null @@ -1,470 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414223735.php b/.history/resources/views/user/home.blade_20260414223735.php deleted file mode 100644 index 6857621..0000000 --- a/.history/resources/views/user/home.blade_20260414223735.php +++ /dev/null @@ -1,489 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414223736.php b/.history/resources/views/user/home.blade_20260414223736.php deleted file mode 100644 index 85c37d2..0000000 --- a/.history/resources/views/user/home.blade_20260414223736.php +++ /dev/null @@ -1,488 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224020.php b/.history/resources/views/user/home.blade_20260414224020.php deleted file mode 100644 index 544f343..0000000 --- a/.history/resources/views/user/home.blade_20260414224020.php +++ /dev/null @@ -1,499 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - -
- -
- - {{-- 🔥 GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- 🔥 ISI --}} -
-
- - {{-- 🔥 BADGE --}} - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

- {{ $info->isi }} -

- - {{ $info->kategori }} - -
-
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224132.php b/.history/resources/views/user/home.blade_20260414224132.php deleted file mode 100644 index 39fc3cd..0000000 --- a/.history/resources/views/user/home.blade_20260414224132.php +++ /dev/null @@ -1,500 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse - -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224135.php b/.history/resources/views/user/home.blade_20260414224135.php deleted file mode 100644 index 32af5a1..0000000 --- a/.history/resources/views/user/home.blade_20260414224135.php +++ /dev/null @@ -1,499 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414224219.php b/.history/resources/views/user/home.blade_20260414224219.php deleted file mode 100644 index aea3280..0000000 --- a/.history/resources/views/user/home.blade_20260414224219.php +++ /dev/null @@ -1,503 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224446.php b/.history/resources/views/user/home.blade_20260414224446.php deleted file mode 100644 index 0842898..0000000 --- a/.history/resources/views/user/home.blade_20260414224446.php +++ /dev/null @@ -1,485 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224523.php b/.history/resources/views/user/home.blade_20260414224523.php deleted file mode 100644 index 515097d..0000000 --- a/.history/resources/views/user/home.blade_20260414224523.php +++ /dev/null @@ -1,486 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414224525.php b/.history/resources/views/user/home.blade_20260414224525.php deleted file mode 100644 index 63e0220..0000000 --- a/.history/resources/views/user/home.blade_20260414224525.php +++ /dev/null @@ -1,498 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414224528.php b/.history/resources/views/user/home.blade_20260414224528.php deleted file mode 100644 index 058de57..0000000 --- a/.history/resources/views/user/home.blade_20260414224528.php +++ /dev/null @@ -1,498 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224603.php b/.history/resources/views/user/home.blade_20260414224603.php deleted file mode 100644 index 76589c1..0000000 --- a/.history/resources/views/user/home.blade_20260414224603.php +++ /dev/null @@ -1,498 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414224835.php b/.history/resources/views/user/home.blade_20260414224835.php deleted file mode 100644 index c3badbe..0000000 --- a/.history/resources/views/user/home.blade_20260414224835.php +++ /dev/null @@ -1,502 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414224836.php b/.history/resources/views/user/home.blade_20260414224836.php deleted file mode 100644 index 872ace9..0000000 --- a/.history/resources/views/user/home.blade_20260414224836.php +++ /dev/null @@ -1,502 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414224854.php b/.history/resources/views/user/home.blade_20260414224854.php deleted file mode 100644 index c6c204d..0000000 --- a/.history/resources/views/user/home.blade_20260414224854.php +++ /dev/null @@ -1,502 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414224855.php b/.history/resources/views/user/home.blade_20260414224855.php deleted file mode 100644 index 459f5b1..0000000 --- a/.history/resources/views/user/home.blade_20260414224855.php +++ /dev/null @@ -1,502 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225100.php b/.history/resources/views/user/home.blade_20260414225100.php deleted file mode 100644 index aaf8a85..0000000 --- a/.history/resources/views/user/home.blade_20260414225100.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225104.php b/.history/resources/views/user/home.blade_20260414225104.php deleted file mode 100644 index ad461e2..0000000 --- a/.history/resources/views/user/home.blade_20260414225104.php +++ /dev/null @@ -1,502 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225106.php b/.history/resources/views/user/home.blade_20260414225106.php deleted file mode 100644 index 906037a..0000000 --- a/.history/resources/views/user/home.blade_20260414225106.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225121.php b/.history/resources/views/user/home.blade_20260414225121.php deleted file mode 100644 index 9fff963..0000000 --- a/.history/resources/views/user/home.blade_20260414225121.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225122.php b/.history/resources/views/user/home.blade_20260414225122.php deleted file mode 100644 index 22752c2..0000000 --- a/.history/resources/views/user/home.blade_20260414225122.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225347.php b/.history/resources/views/user/home.blade_20260414225347.php deleted file mode 100644 index b047072..0000000 --- a/.history/resources/views/user/home.blade_20260414225347.php +++ /dev/null @@ -1,500 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225348.php b/.history/resources/views/user/home.blade_20260414225348.php deleted file mode 100644 index f722d9d..0000000 --- a/.history/resources/views/user/home.blade_20260414225348.php +++ /dev/null @@ -1,500 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225414.php b/.history/resources/views/user/home.blade_20260414225414.php deleted file mode 100644 index fd7a145..0000000 --- a/.history/resources/views/user/home.blade_20260414225414.php +++ /dev/null @@ -1,500 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225641.php b/.history/resources/views/user/home.blade_20260414225641.php deleted file mode 100644 index f8f47b0..0000000 --- a/.history/resources/views/user/home.blade_20260414225641.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225642.php b/.history/resources/views/user/home.blade_20260414225642.php deleted file mode 100644 index 07edb2a..0000000 --- a/.history/resources/views/user/home.blade_20260414225642.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225837.php b/.history/resources/views/user/home.blade_20260414225837.php deleted file mode 100644 index 99445ac..0000000 --- a/.history/resources/views/user/home.blade_20260414225837.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225903.php b/.history/resources/views/user/home.blade_20260414225903.php deleted file mode 100644 index 51ce5c1..0000000 --- a/.history/resources/views/user/home.blade_20260414225903.php +++ /dev/null @@ -1,504 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - -
- - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225906.php b/.history/resources/views/user/home.blade_20260414225906.php deleted file mode 100644 index 99445ac..0000000 --- a/.history/resources/views/user/home.blade_20260414225906.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225908.php b/.history/resources/views/user/home.blade_20260414225908.php deleted file mode 100644 index 99445ac..0000000 --- a/.history/resources/views/user/home.blade_20260414225908.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225909.php b/.history/resources/views/user/home.blade_20260414225909.php deleted file mode 100644 index 51ce5c1..0000000 --- a/.history/resources/views/user/home.blade_20260414225909.php +++ /dev/null @@ -1,504 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - -
- - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414225929.php b/.history/resources/views/user/home.blade_20260414225929.php deleted file mode 100644 index 99445ac..0000000 --- a/.history/resources/views/user/home.blade_20260414225929.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414225936.php b/.history/resources/views/user/home.blade_20260414225936.php deleted file mode 100644 index 6ad096d..0000000 --- a/.history/resources/views/user/home.blade_20260414225936.php +++ /dev/null @@ -1,506 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414230046.php b/.history/resources/views/user/home.blade_20260414230046.php deleted file mode 100644 index 5655210..0000000 --- a/.history/resources/views/user/home.blade_20260414230046.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414230518.php b/.history/resources/views/user/home.blade_20260414230518.php deleted file mode 100644 index 0bb4780..0000000 --- a/.history/resources/views/user/home.blade_20260414230518.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414230519.php b/.history/resources/views/user/home.blade_20260414230519.php deleted file mode 100644 index 6d975d7..0000000 --- a/.history/resources/views/user/home.blade_20260414230519.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 TAMBAHAN INI --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414230543.php b/.history/resources/views/user/home.blade_20260414230543.php deleted file mode 100644 index 35d56dd..0000000 --- a/.history/resources/views/user/home.blade_20260414230543.php +++ /dev/null @@ -1,509 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 FILTER DATA --}} -@php - $slider = $informasi->where('is_penting', 1)->values(); -@endphp - -{{-- 🔥 CAROUSEL --}} - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414230544.php b/.history/resources/views/user/home.blade_20260414230544.php deleted file mode 100644 index bd5161a..0000000 --- a/.history/resources/views/user/home.blade_20260414230544.php +++ /dev/null @@ -1,508 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 FILTER DATA --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - {{-- 🔥 CAROUSEL --}} - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414231055.php b/.history/resources/views/user/home.blade_20260414231055.php deleted file mode 100644 index 79ccc62..0000000 --- a/.history/resources/views/user/home.blade_20260414231055.php +++ /dev/null @@ -1,512 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 FILTER DATA --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - {{-- 🔥 CAROUSEL --}} - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231056.php b/.history/resources/views/user/home.blade_20260414231056.php deleted file mode 100644 index 0077d9d..0000000 --- a/.history/resources/views/user/home.blade_20260414231056.php +++ /dev/null @@ -1,509 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - {{-- 🔥 FILTER DATA --}} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - {{-- 🔥 CAROUSEL --}} - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414231222.php b/.history/resources/views/user/home.blade_20260414231222.php deleted file mode 100644 index 1672284..0000000 --- a/.history/resources/views/user/home.blade_20260414231222.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414231248.php b/.history/resources/views/user/home.blade_20260414231248.php deleted file mode 100644 index 391ef81..0000000 --- a/.history/resources/views/user/home.blade_20260414231248.php +++ /dev/null @@ -1,497 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231250.php b/.history/resources/views/user/home.blade_20260414231250.php deleted file mode 100644 index 391ef81..0000000 --- a/.history/resources/views/user/home.blade_20260414231250.php +++ /dev/null @@ -1,497 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231252.php b/.history/resources/views/user/home.blade_20260414231252.php deleted file mode 100644 index c729b5f..0000000 --- a/.history/resources/views/user/home.blade_20260414231252.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231258.php b/.history/resources/views/user/home.blade_20260414231258.php deleted file mode 100644 index 33fb9f9..0000000 --- a/.history/resources/views/user/home.blade_20260414231258.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231300.php b/.history/resources/views/user/home.blade_20260414231300.php deleted file mode 100644 index 4fda3ec..0000000 --- a/.history/resources/views/user/home.blade_20260414231300.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414231411.php b/.history/resources/views/user/home.blade_20260414231411.php deleted file mode 100644 index faaf755..0000000 --- a/.history/resources/views/user/home.blade_20260414231411.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414231503.php b/.history/resources/views/user/home.blade_20260414231503.php deleted file mode 100644 index 62e4c0d..0000000 --- a/.history/resources/views/user/home.blade_20260414231503.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- {{ $slider->count() }} - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231525.php b/.history/resources/views/user/home.blade_20260414231525.php deleted file mode 100644 index 3aa12d5..0000000 --- a/.history/resources/views/user/home.blade_20260414231525.php +++ /dev/null @@ -1,499 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); -@endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231526.php b/.history/resources/views/user/home.blade_20260414231526.php deleted file mode 100644 index 59af6b5..0000000 --- a/.history/resources/views/user/home.blade_20260414231526.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231530.php b/.history/resources/views/user/home.blade_20260414231530.php deleted file mode 100644 index 2fc2e83..0000000 --- a/.history/resources/views/user/home.blade_20260414231530.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - {{ $slider->count() }} - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231536.php b/.history/resources/views/user/home.blade_20260414231536.php deleted file mode 100644 index 59af6b5..0000000 --- a/.history/resources/views/user/home.blade_20260414231536.php +++ /dev/null @@ -1,495 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414231630.php b/.history/resources/views/user/home.blade_20260414231630.php deleted file mode 100644 index a6c04fb..0000000 --- a/.history/resources/views/user/home.blade_20260414231630.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414231631.php b/.history/resources/views/user/home.blade_20260414231631.php deleted file mode 100644 index ed18e71..0000000 --- a/.history/resources/views/user/home.blade_20260414231631.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414233805.php b/.history/resources/views/user/home.blade_20260414233805.php deleted file mode 100644 index a5a2ffb..0000000 --- a/.history/resources/views/user/home.blade_20260414233805.php +++ /dev/null @@ -1,502 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414233806.php b/.history/resources/views/user/home.blade_20260414233806.php deleted file mode 100644 index 05ebc9c..0000000 --- a/.history/resources/views/user/home.blade_20260414233806.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414233822.php b/.history/resources/views/user/home.blade_20260414233822.php deleted file mode 100644 index 7f9d1a1..0000000 --- a/.history/resources/views/user/home.blade_20260414233822.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); -@endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260414233826.php b/.history/resources/views/user/home.blade_20260414233826.php deleted file mode 100644 index 8960d9c..0000000 --- a/.history/resources/views/user/home.blade_20260414233826.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414234029.php b/.history/resources/views/user/home.blade_20260414234029.php deleted file mode 100644 index b452c0a..0000000 --- a/.history/resources/views/user/home.blade_20260414234029.php +++ /dev/null @@ -1,501 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260414234138.php b/.history/resources/views/user/home.blade_20260414234138.php deleted file mode 100644 index 50930c8..0000000 --- a/.history/resources/views/user/home.blade_20260414234138.php +++ /dev/null @@ -1,498 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - @foreach($informasi->where('is_penting', 1) as $info) - - @endforeach - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260415000204.php b/.history/resources/views/user/home.blade_20260415000204.php deleted file mode 100644 index d44a7fe..0000000 --- a/.history/resources/views/user/home.blade_20260415000204.php +++ /dev/null @@ -1,517 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000206.php b/.history/resources/views/user/home.blade_20260415000206.php deleted file mode 100644 index d44a7fe..0000000 --- a/.history/resources/views/user/home.blade_20260415000206.php +++ /dev/null @@ -1,517 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000207.php b/.history/resources/views/user/home.blade_20260415000207.php deleted file mode 100644 index 0422be5..0000000 --- a/.history/resources/views/user/home.blade_20260415000207.php +++ /dev/null @@ -1,515 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260415000239.php b/.history/resources/views/user/home.blade_20260415000239.php deleted file mode 100644 index 1d711f6..0000000 --- a/.history/resources/views/user/home.blade_20260415000239.php +++ /dev/null @@ -1,516 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000241.php b/.history/resources/views/user/home.blade_20260415000241.php deleted file mode 100644 index d947190..0000000 --- a/.history/resources/views/user/home.blade_20260415000241.php +++ /dev/null @@ -1,538 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260415000259.php b/.history/resources/views/user/home.blade_20260415000259.php deleted file mode 100644 index 8cd8b4a..0000000 --- a/.history/resources/views/user/home.blade_20260415000259.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000300.php b/.history/resources/views/user/home.blade_20260415000300.php deleted file mode 100644 index 7198bb4..0000000 --- a/.history/resources/views/user/home.blade_20260415000300.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260415000341.php b/.history/resources/views/user/home.blade_20260415000341.php deleted file mode 100644 index ebb552d..0000000 --- a/.history/resources/views/user/home.blade_20260415000341.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - {{-- --}} - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000355.php b/.history/resources/views/user/home.blade_20260415000355.php deleted file mode 100644 index f22bc6c..0000000 --- a/.history/resources/views/user/home.blade_20260415000355.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000408.php b/.history/resources/views/user/home.blade_20260415000408.php deleted file mode 100644 index ddbee64..0000000 --- a/.history/resources/views/user/home.blade_20260415000408.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - {{-- --}} - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000415.php b/.history/resources/views/user/home.blade_20260415000415.php deleted file mode 100644 index f22bc6c..0000000 --- a/.history/resources/views/user/home.blade_20260415000415.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000452.php b/.history/resources/views/user/home.blade_20260415000452.php deleted file mode 100644 index 2f8425a..0000000 --- a/.history/resources/views/user/home.blade_20260415000452.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - {{-- - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
--}} - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000456.php b/.history/resources/views/user/home.blade_20260415000456.php deleted file mode 100644 index f22bc6c..0000000 --- a/.history/resources/views/user/home.blade_20260415000456.php +++ /dev/null @@ -1,547 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - -
- -
- - {{-- GAMBAR --}} -
- @if($info->gambar) - - @else - - @endif -
- - {{-- ISI --}} -
-
- - @if($info->is_penting) - 🔥 Penting - @endif - -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- -

{{ Str::limit($info->isi, 100) }}

- - {{ $info->kategori }} - -
-
- -
- -
- -
- - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000458.php b/.history/resources/views/user/home.blade_20260415000458.php deleted file mode 100644 index 8a593cf..0000000 --- a/.history/resources/views/user/home.blade_20260415000458.php +++ /dev/null @@ -1,507 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000533.php b/.history/resources/views/user/home.blade_20260415000533.php deleted file mode 100644 index 54be9f7..0000000 --- a/.history/resources/views/user/home.blade_20260415000533.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000545.php b/.history/resources/views/user/home.blade_20260415000545.php deleted file mode 100644 index a985eaf..0000000 --- a/.history/resources/views/user/home.blade_20260415000545.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - {{-- @forelse($informasi as $info) --}} - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260415000554.php b/.history/resources/views/user/home.blade_20260415000554.php deleted file mode 100644 index 54be9f7..0000000 --- a/.history/resources/views/user/home.blade_20260415000554.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - -

👤 Data Anda

- {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260416155527.php b/.history/resources/views/user/home.blade_20260416155527.php deleted file mode 100644 index f21979d..0000000 --- a/.history/resources/views/user/home.blade_20260416155527.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{--

👤 Data Anda

--}} - {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260416160100.php b/.history/resources/views/user/home.blade_20260416160100.php deleted file mode 100644 index 06a5ffa..0000000 --- a/.history/resources/views/user/home.blade_20260416160100.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif - - {{--

👤 Data Anda

--}} - {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - {{-- @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif --}} - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260416160140.php b/.history/resources/views/user/home.blade_20260416160140.php deleted file mode 100644 index 121c3e0..0000000 --- a/.history/resources/views/user/home.blade_20260416160140.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - {{-- @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif --}} - - {{--

👤 Data Anda

--}} - {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - {{-- @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif --}} - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260416160145.php b/.history/resources/views/user/home.blade_20260416160145.php deleted file mode 100644 index b836a37..0000000 --- a/.history/resources/views/user/home.blade_20260416160145.php +++ /dev/null @@ -1,505 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - {{-- @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif --}} - - {{--

👤 Data Anda

--}} - {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - {{-- @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif --}} - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/home.blade_20260416193226.php b/.history/resources/views/user/home.blade_20260416193226.php deleted file mode 100644 index 004e243..0000000 --- a/.history/resources/views/user/home.blade_20260416193226.php +++ /dev/null @@ -1,511 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - @if($isExpired) -
- ⚠️ Kontrak Anda telah berakhir. Silakan hubungi admin. -
-@endif - -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - {{-- @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif --}} - - {{--

👤 Data Anda

--}} - {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - {{-- @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif --}} - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection diff --git a/.history/resources/views/user/home.blade_20260416193227.php b/.history/resources/views/user/home.blade_20260416193227.php deleted file mode 100644 index 1d84c6c..0000000 --- a/.history/resources/views/user/home.blade_20260416193227.php +++ /dev/null @@ -1,511 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - @if($isExpired) -
- ⚠️ Kontrak Anda telah berakhir. Silakan hubungi admin. -
- @endif - -

Beranda Penghuni

- -
- -

📢 Informasi & Pengumuman

- - @php - $slider = $informasi->where('is_penting', 1)->values(); - @endphp - - - - - - @forelse($informasi as $info) - - @empty -
- Belum ada informasi -
- @endforelse -
- - {{-- 🔔 NOTIF --}} - @if(session('success')) -
{{ session('success') }}
- @endif - - {{-- ========================= --}} - {{-- DATA PENGHUNI --}} - {{-- ========================= --}} - - {{-- 🔥 FORM INPUT PENGHUNI (JIKA BELUM ADA DATA) --}} - @if(!isset($penghuni)) - -
-
- -
⚠️ Lengkapi Data Penghuni
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- - {{--
- - -
--}} - -
- - -
- -
- - -
- - - - -
-
- - @endif - {{-- @if(isset($penghuni)) -
-
-
👤 Data Anda
-

Nama: {{ $penghuni->nama }}

-

Email: {{ $penghuni->email }}

- -

Status Huni: - - {{ $penghuni->status_huni }} - -

-
-
- @endif --}} - - {{--

👤 Data Anda

--}} - {{-- ========================= --}} - {{-- 🏠 RUMAH SAYA --}} - {{-- ========================= --}} - {{-- @if(isset($penghuni) && $penghuni->rumah) - -
-
- -
🏠 Rumah Saya
- -

- Blok: {{ $penghuni->rumah->blok }}
- No Rumah: {{ $penghuni->rumah->no_rumah }} -

- -

- Status: - - {{ $penghuni->rumah->status }} - -

- -
-
- - @endif --}} - - {{-- ========================= --}} - {{-- DATA IURAN --}} - {{-- ========================= --}} -

💰 Data Iuran Saya

- - @forelse($iuran as $i) -
-
- -
Iuran {{ $i->bulan }} {{ $i->tahun }}
- -

Jumlah: Rp {{ number_format($i->jumlah, 0, ',', '.') }}

- -

Status: - - {{ ucfirst($i->status) }} - -

- - {{-- PROGRESS --}} -
-
📤
-
-
-
- -
-
- - {{-- 🔥 TOMBOL HAPUS DI SINI --}} -
- @if($i->status == 'lunas') -
- @csrf - @method('DELETE') - - - - @else - - @endif -
- @empty -
Belum ada data iuran
- @endforelse - - {{-- ========================= --}} - {{-- STATUS PENGADUAN --}} - {{-- ========================= --}} -

📢 Status Pengaduan Saya

- - {{-- @php - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id ?? 0)->latest()->get(); - @endphp --}} - - @forelse($pengaduan as $p) -
-
- - {{-- 🔥 TOMBOL HAPUS PENGADUAN --}} - @if($p->status == 'selesai') -
- - @csrf - @method('DELETE') - - - - @endif - -
-
#P-{{ str_pad($p->id, 3, '0', STR_PAD_LEFT) }}
- - - {{ ucfirst($p->status) }} - -
- -

- {{ \Illuminate\Support\Str::limit($p->deskripsi, 80) }} -

- - {{-- TIMELINE --}} -
-
📩
-
⚙️
-
-
-
- - - {{ \Carbon\Carbon::parse($p->tanggal_pengaduan)->translatedFormat('d M Y H:i') }} - - - @if($p->tanggapan_admin) -
- Tanggapan: {{ $p->tanggapan_admin }} -
- @endif - -
-
- @empty -
Belum ada pengaduan
- @endforelse - -
-@endsection - -{{-- 🔥 STYLE + SCRIPT DIGABUNG --}} -@section('scripts') - - - -@endsection \ No newline at end of file diff --git a/.history/resources/views/user/informasi/detail.blade_20260414204931.php b/.history/resources/views/user/informasi/detail.blade_20260414204931.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/informasi/detail.blade_20260414204941.php b/.history/resources/views/user/informasi/detail.blade_20260414204941.php deleted file mode 100644 index 0a4e0c4..0000000 --- a/.history/resources/views/user/informasi/detail.blade_20260414204941.php +++ /dev/null @@ -1,23 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

{{ $info->judul }}

- -

- 📅 {{ $info->tanggal }} | 👁️ {{ $info->views }}x -

- - @if($info->gambar) - - @endif - -

{{ $info->isi }}

- - - Kembali - - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408161200.php b/.history/resources/views/user/iuran/index.blade_20260408161200.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/iuran/index.blade_20260408161215.php b/.history/resources/views/user/iuran/index.blade_20260408161215.php deleted file mode 100644 index f504abc..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161215.php +++ /dev/null @@ -1 +0,0 @@ -@extends('la') diff --git a/.history/resources/views/user/iuran/index.blade_20260408161216.php b/.history/resources/views/user/iuran/index.blade_20260408161216.php deleted file mode 100644 index 56ca1b6..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161216.php +++ /dev/null @@ -1 +0,0 @@ -@extends('lay') diff --git a/.history/resources/views/user/iuran/index.blade_20260408161217.php b/.history/resources/views/user/iuran/index.blade_20260408161217.php deleted file mode 100644 index f16b07f..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161217.php +++ /dev/null @@ -1 +0,0 @@ -@extends('layouts.app') diff --git a/.history/resources/views/user/iuran/index.blade_20260408161218.php b/.history/resources/views/user/iuran/index.blade_20260408161218.php deleted file mode 100644 index 9da80c4..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161218.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') - diff --git a/.history/resources/views/user/iuran/index.blade_20260408161227.php b/.history/resources/views/user/iuran/index.blade_20260408161227.php deleted file mode 100644 index 6a87f0d..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161227.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section() diff --git a/.history/resources/views/user/iuran/index.blade_20260408161230.php b/.history/resources/views/user/iuran/index.blade_20260408161230.php deleted file mode 100644 index 2f1a7ed..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161230.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section('content') diff --git a/.history/resources/views/user/iuran/index.blade_20260408161231.php b/.history/resources/views/user/iuran/index.blade_20260408161231.php deleted file mode 100644 index db160d7..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161231.php +++ /dev/null @@ -1,3 +0,0 @@ -@extends('layouts.app') -@section('content') - diff --git a/.history/resources/views/user/iuran/index.blade_20260408161235.php b/.history/resources/views/user/iuran/index.blade_20260408161235.php deleted file mode 100644 index 313f4fd..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161235.php +++ /dev/null @@ -1,3 +0,0 @@ -@extends('layouts.app') -@section('content') -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408161237.php b/.history/resources/views/user/iuran/index.blade_20260408161237.php deleted file mode 100644 index 432de55..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161237.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') -@section('content') - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408161244.php b/.history/resources/views/user/iuran/index.blade_20260408161244.php deleted file mode 100644 index 065db7b..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408161244.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- -
BulanTanggal BayarProgressStatusAksi
- - - - - - - - @foreach($iuran as $i) - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Bayar - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408164352.php b/.history/resources/views/user/iuran/index.blade_20260408164352.php deleted file mode 100644 index 747cf77..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408164352.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408164355.php b/.history/resources/views/user/iuran/index.blade_20260408164355.php deleted file mode 100644 index 1528559..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408164355.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408165911.php b/.history/resources/views/user/iuran/index.blade_20260408165911.php deleted file mode 100644 index 3a48e18..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408165911.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408165915.php b/.history/resources/views/user/iuran/index.blade_20260408165915.php deleted file mode 100644 index 1528559..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408165915.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408171243.php b/.history/resources/views/user/iuran/index.blade_20260408171243.php deleted file mode 100644 index fc25d50..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408171243.php +++ /dev/null @@ -1,27 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408171244.php b/.history/resources/views/user/iuran/index.blade_20260408171244.php deleted file mode 100644 index 7ed9691..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408171244.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - - - @if($i->bukti_pembayaran) - - @else - - - @endif -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408171249.php b/.history/resources/views/user/iuran/index.blade_20260408171249.php deleted file mode 100644 index 79c17dd..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408171249.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - - - @if($i->bukti_pembayaran) - - @else - - - @endif -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408171307.php b/.history/resources/views/user/iuran/index.blade_20260408171307.php deleted file mode 100644 index 3957030..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408171307.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - - - @if($i->bukti_pembayaran) - - @else - - - @endif -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408171310.php b/.history/resources/views/user/iuran/index.blade_20260408171310.php deleted file mode 100644 index 1528559..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408171310.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') -@section('content') -

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - @endforeach -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah) }}{{ $i->status }} - - Upload - -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408171822.php b/.history/resources/views/user/iuran/index.blade_20260408171822.php deleted file mode 100644 index 9ae60d0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408171822.php +++ /dev/null @@ -1,41 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - - @foreach($iuran as $i) - - - - - - - - @endforeach -
BulanTahunJumlahStatusAksi
{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - @if(!$i->bukti_pembayaran) - - Upload - - @endif -
-
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408173634.php b/.history/resources/views/user/iuran/index.blade_20260408173634.php deleted file mode 100644 index 36ad419..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408173634.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Upload Pembayaran

- -
- -

Bulan: {{ $iuran->bulan }}

-

Tahun: {{ $iuran->tahun }}

-

Jumlah: Rp {{ number_format($iuran->jumlah, 0, ',', '.') }}

- -
- @csrf - -
- - -
- - - -
- -
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408173651.php b/.history/resources/views/user/iuran/index.blade_20260408173651.php deleted file mode 100644 index 9ae60d0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408173651.php +++ /dev/null @@ -1,41 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - - @foreach($iuran as $i) - - - - - - - - @endforeach -
BulanTahunJumlahStatusAksi
{{ $i->bulan }}{{ $i->tahun }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @elseif($i->bukti_pembayaran) - Menunggu - @else - Belum Bayar - @endif - - @if(!$i->bukti_pembayaran) - - Upload - - @endif -
-
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408183125.php b/.history/resources/views/user/iuran/index.blade_20260408183125.php deleted file mode 100644 index dec5fcd..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408183125.php +++ /dev/null @@ -1,65 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408183929.php b/.history/resources/views/user/iuran/index.blade_20260408183929.php deleted file mode 100644 index 27870c4..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408183929.php +++ /dev/null @@ -1,65 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408183933.php b/.history/resources/views/user/iuran/index.blade_20260408183933.php deleted file mode 100644 index f8d1774..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408183933.php +++ /dev/null @@ -1,65 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408191356.php b/.history/resources/views/user/iuran/index.blade_20260408191356.php deleted file mode 100644 index 4955e9f..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408191356.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408191357.php b/.history/resources/views/user/iuran/index.blade_20260408191357.php deleted file mode 100644 index 4955e9f..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408191357.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408191359.php b/.history/resources/views/user/iuran/index.blade_20260408191359.php deleted file mode 100644 index f8d1774..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408191359.php +++ /dev/null @@ -1,65 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408191411.php b/.history/resources/views/user/iuran/index.blade_20260408191411.php deleted file mode 100644 index 34ba1d4..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408191411.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408191414.php b/.history/resources/views/user/iuran/index.blade_20260408191414.php deleted file mode 100644 index 2ceacd5..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408191414.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408213349.php b/.history/resources/views/user/iuran/index.blade_20260408213349.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408213349.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215425.php b/.history/resources/views/user/iuran/index.blade_20260408215425.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215425.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215535.php b/.history/resources/views/user/iuran/index.blade_20260408215535.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215535.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215540.php b/.history/resources/views/user/iuran/index.blade_20260408215540.php deleted file mode 100644 index 2ceacd5..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215540.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215615.php b/.history/resources/views/user/iuran/index.blade_20260408215615.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215615.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215623.php b/.history/resources/views/user/iuran/index.blade_20260408215623.php deleted file mode 100644 index 2ceacd5..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215623.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215625.php b/.history/resources/views/user/iuran/index.blade_20260408215625.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215625.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215629.php b/.history/resources/views/user/iuran/index.blade_20260408215629.php deleted file mode 100644 index 2ceacd5..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215629.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215642.php b/.history/resources/views/user/iuran/index.blade_20260408215642.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215642.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215649.php b/.history/resources/views/user/iuran/index.blade_20260408215649.php deleted file mode 100644 index 0f283c2..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215649.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
z - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215652.php b/.history/resources/views/user/iuran/index.blade_20260408215652.php deleted file mode 100644 index 2ceacd5..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215652.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215655.php b/.history/resources/views/user/iuran/index.blade_20260408215655.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215655.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215657.php b/.history/resources/views/user/iuran/index.blade_20260408215657.php deleted file mode 100644 index 87001b3..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215657.php +++ /dev/null @@ -1,74 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215701.php b/.history/resources/views/user/iuran/index.blade_20260408215701.php deleted file mode 100644 index 2ceacd5..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215701.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215703.php b/.history/resources/views/user/iuran/index.blade_20260408215703.php deleted file mode 100644 index eb7c7dc..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215703.php +++ /dev/null @@ -1,66 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Data Iuran Saya

- - - - - - - - - - @foreach($iuran as $i) - - - - - - - - - @endforeach - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'belum') - -
- - - Saya Sudah Bayar - - - @else - ✔ - @endif -
-
- - -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215705.php b/.history/resources/views/user/iuran/index.blade_20260408215705.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215705.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215906.php b/.history/resources/views/user/iuran/index.blade_20260408215906.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215906.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215943.php b/.history/resources/views/user/iuran/index.blade_20260408215943.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215943.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215951.php b/.history/resources/views/user/iuran/index.blade_20260408215951.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215951.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408215956.php b/.history/resources/views/user/iuran/index.blade_20260408215956.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408215956.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220002.php b/.history/resources/views/user/iuran/index.blade_20260408220002.php deleted file mode 100644 index ad3b1b4..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220002.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220004.php b/.history/resources/views/user/iuran/index.blade_20260408220004.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220004.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220005.php b/.history/resources/views/user/iuran/index.blade_20260408220005.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220005.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220012.php b/.history/resources/views/user/iuran/index.blade_20260408220012.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220012.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220017.php b/.history/resources/views/user/iuran/index.blade_20260408220017.php deleted file mode 100644 index 8a82f42..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220017.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220021.php b/.history/resources/views/user/iuran/index.blade_20260408220021.php deleted file mode 100644 index 86c9ee2..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220021.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $i->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220035.php b/.history/resources/views/user/iuran/index.blade_20260408220035.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220035.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220037.php b/.history/resources/views/user/iuran/index.blade_20260408220037.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220037.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220042.php b/.history/resources/views/user/iuran/index.blade_20260408220042.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220042.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220044.php b/.history/resources/views/user/iuran/index.blade_20260408220044.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220044.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220046.php b/.history/resources/views/user/iuran/index.blade_20260408220046.php deleted file mode 100644 index f9c51cb..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220046.php +++ /dev/null @@ -1,50 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Pembayaran Iuran

- -
-
- - {{-- INFO --}} -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- - {{-- 🔥 QRIS --}} -
-
Scan QRIS
- - - -

Scan menggunakan e-wallet / m-banking

-
- -
- - {{-- 🔥 UPLOAD BUKTI --}} -
- - @csrf - -
- - -
- - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220240.php b/.history/resources/views/user/iuran/index.blade_20260408220240.php deleted file mode 100644 index 9c227e0..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220240.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220326.php b/.history/resources/views/user/iuran/index.blade_20260408220326.php deleted file mode 100644 index 6cff95e..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220326.php +++ /dev/null @@ -1,78 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260408220330.php b/.history/resources/views/user/iuran/index.blade_20260408220330.php deleted file mode 100644 index 33ed64c..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260408220330.php +++ /dev/null @@ -1,78 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130432.php b/.history/resources/views/user/iuran/index.blade_20260410130432.php deleted file mode 100644 index 6870851..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130432.php +++ /dev/null @@ -1,79 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130603.php b/.history/resources/views/user/iuran/index.blade_20260410130603.php deleted file mode 100644 index ab95fcf..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130603.php +++ /dev/null @@ -1,81 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130604.php b/.history/resources/views/user/iuran/index.blade_20260410130604.php deleted file mode 100644 index a368ad1..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130604.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - - {{ $i->jenis_iuran ?? '-' }} - - - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130608.php b/.history/resources/views/user/iuran/index.blade_20260410130608.php deleted file mode 100644 index af58385..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130608.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - - {{ $i->jenis_iuran ?? '-' }} - - - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130842.php b/.history/resources/views/user/iuran/index.blade_20260410130842.php deleted file mode 100644 index c5ae77b..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130842.php +++ /dev/null @@ -1,86 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130845.php b/.history/resources/views/user/iuran/index.blade_20260410130845.php deleted file mode 100644 index e07d309..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130845.php +++ /dev/null @@ -1,86 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - -

- Jenis Iuran: - - {{ $i->jenis_iuran ?? '-' }} - -

- - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/index.blade_20260410130920.php b/.history/resources/views/user/iuran/index.blade_20260410130920.php deleted file mode 100644 index af58385..0000000 --- a/.history/resources/views/user/iuran/index.blade_20260410130920.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Data Iuran Saya

- -
-
Scan QRIS Pembayaran
- -
- - - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - - - - - - - @empty - - - - @endforelse - - -
BulanJumlahJenis IuranStatusAksi
{{ $i->bulan }}Rp {{ number_format($i->jumlah,0,',','.') }} - - {{ $i->jenis_iuran ?? '-' }} - - - @if($i->status == 'lunas') - Lunas - @else - Belum - @endif - - @if($i->status == 'lunas') - ✔ - @else - - Bayar - - @endif -
- Belum ada data iuran -
- -
- -@endsection diff --git a/.history/resources/views/user/iuran/status.blade_20260408161321.php b/.history/resources/views/user/iuran/status.blade_20260408161321.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/iuran/status.blade_20260408162237.php b/.history/resources/views/user/iuran/status.blade_20260408162237.php deleted file mode 100644 index 59c227c..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162237.php +++ /dev/null @@ -1 +0,0 @@ -@ diff --git a/.history/resources/views/user/iuran/status.blade_20260408162243.php b/.history/resources/views/user/iuran/status.blade_20260408162243.php deleted file mode 100644 index f16b07f..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162243.php +++ /dev/null @@ -1 +0,0 @@ -@extends('layouts.app') diff --git a/.history/resources/views/user/iuran/status.blade_20260408162244.php b/.history/resources/views/user/iuran/status.blade_20260408162244.php deleted file mode 100644 index 9da80c4..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162244.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') - diff --git a/.history/resources/views/user/iuran/status.blade_20260408162248.php b/.history/resources/views/user/iuran/status.blade_20260408162248.php deleted file mode 100644 index 6a87f0d..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162248.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section() diff --git a/.history/resources/views/user/iuran/status.blade_20260408162250.php b/.history/resources/views/user/iuran/status.blade_20260408162250.php deleted file mode 100644 index 2f1a7ed..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162250.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section('content') diff --git a/.history/resources/views/user/iuran/status.blade_20260408162253.php b/.history/resources/views/user/iuran/status.blade_20260408162253.php deleted file mode 100644 index 6d4ab37..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162253.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') -@section('content') - -@end diff --git a/.history/resources/views/user/iuran/status.blade_20260408162255.php b/.history/resources/views/user/iuran/status.blade_20260408162255.php deleted file mode 100644 index 432de55..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162255.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') -@section('content') - -@endsection diff --git a/.history/resources/views/user/iuran/status.blade_20260408162257.php b/.history/resources/views/user/iuran/status.blade_20260408162257.php deleted file mode 100644 index 804bdf9..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162257.php +++ /dev/null @@ -1,32 +0,0 @@ -@extends('layouts.app') -@section('content') -

Status Pembayaran

- - - - - - - - - @foreach($iuran as $i) - - - - - - @endforeach -
BulanBuktiStatus
{{ $i->bulan }} - @if($i->bukti_bayar) - - @else - - - @endif - - @if($i->status == 'lunas') - Lunas - @else - Menunggu - @endif -
-@endsection diff --git a/.history/resources/views/user/iuran/status.blade_20260408162540.php b/.history/resources/views/user/iuran/status.blade_20260408162540.php deleted file mode 100644 index e528b0b..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408162540.php +++ /dev/null @@ -1,32 +0,0 @@ -@extends('layouts.app') -@section('content') -

Status Pembayaran

- - - - - - - - - @foreach($iuran as $i) - - - - - - @endforeach -
BulanBuktiStatus
{{ $i->bulan }} - @if($i->bukti_bayar) - - @else - - - @endif - - @if($i->status == 'lunas') - Lunas - @else - Menunggu - @endif -
-@endsection diff --git a/.history/resources/views/user/iuran/status.blade_20260408173311.php b/.history/resources/views/user/iuran/status.blade_20260408173311.php deleted file mode 100644 index 6d2daa0..0000000 --- a/.history/resources/views/user/iuran/status.blade_20260408173311.php +++ /dev/null @@ -1,75 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Status Pembayaran Iuran

- - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
-
- - - - - - - - - - - - - @forelse($iuran as $i) - - - - - - {{-- BUKTI --}} - - - {{-- STATUS --}} - - - - @empty - - - - @endforelse - -
BulanJumlahBuktiStatus
{{ $i->bulan }} {{ $i->tahun }} - Rp {{ number_format($i->jumlah, 0, ',', '.') }} - - @if($i->bukti_pembayaran) - - @else - Belum upload - @endif - - @if($i->status == 'lunas') - ✔ Lunas - - @elseif($i->bukti_pembayaran) - ⏳ Menunggu Konfirmasi - - @else - ✖ Belum Bayar - @endif -
- Tidak ada data iuran -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408161258.php b/.history/resources/views/user/iuran/upload.blade_20260408161258.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162138.php b/.history/resources/views/user/iuran/upload.blade_20260408162138.php deleted file mode 100644 index ad95c14..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162138.php +++ /dev/null @@ -1,12 +0,0 @@ -

Upload Pembayaran

- -
- @csrf - -
- - -
- - -
diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162141.php b/.history/resources/views/user/iuran/upload.blade_20260408162141.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162143.php b/.history/resources/views/user/iuran/upload.blade_20260408162143.php deleted file mode 100644 index 59c227c..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162143.php +++ /dev/null @@ -1 +0,0 @@ -@ diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162204.php b/.history/resources/views/user/iuran/upload.blade_20260408162204.php deleted file mode 100644 index f504abc..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162204.php +++ /dev/null @@ -1 +0,0 @@ -@extends('la') diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162206.php b/.history/resources/views/user/iuran/upload.blade_20260408162206.php deleted file mode 100644 index f16b07f..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162206.php +++ /dev/null @@ -1 +0,0 @@ -@extends('layouts.app') diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162207.php b/.history/resources/views/user/iuran/upload.blade_20260408162207.php deleted file mode 100644 index 9da80c4..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162207.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') - diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162209.php b/.history/resources/views/user/iuran/upload.blade_20260408162209.php deleted file mode 100644 index 9da80c4..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162209.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') - diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162210.php b/.history/resources/views/user/iuran/upload.blade_20260408162210.php deleted file mode 100644 index 90cbeb3..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162210.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@s diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162212.php b/.history/resources/views/user/iuran/upload.blade_20260408162212.php deleted file mode 100644 index 6a87f0d..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162212.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section() diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162213.php b/.history/resources/views/user/iuran/upload.blade_20260408162213.php deleted file mode 100644 index 310f450..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162213.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section('') diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162214.php b/.history/resources/views/user/iuran/upload.blade_20260408162214.php deleted file mode 100644 index 2f1a7ed..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162214.php +++ /dev/null @@ -1,2 +0,0 @@ -@extends('layouts.app') -@section('content') diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162216.php b/.history/resources/views/user/iuran/upload.blade_20260408162216.php deleted file mode 100644 index c233c29..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162216.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') -@section('content') - - diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162218.php b/.history/resources/views/user/iuran/upload.blade_20260408162218.php deleted file mode 100644 index 6d4ab37..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162218.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') -@section('content') - -@end diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162220.php b/.history/resources/views/user/iuran/upload.blade_20260408162220.php deleted file mode 100644 index 432de55..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162220.php +++ /dev/null @@ -1,4 +0,0 @@ -@extends('layouts.app') -@section('content') - -@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162222.php b/.history/resources/views/user/iuran/upload.blade_20260408162222.php deleted file mode 100644 index 889c1cb..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162222.php +++ /dev/null @@ -1,15 +0,0 @@ -@extends('layouts.app') -@section('content') -

Upload Pembayaran

- -
- @csrf - -
- - -
- - -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408162339.php b/.history/resources/views/user/iuran/upload.blade_20260408162339.php deleted file mode 100644 index 0d65162..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408162339.php +++ /dev/null @@ -1,15 +0,0 @@ -@extends('layouts.app') -@section('content') -

Upload Pembayaran

- -
- @csrf - -
- - -
- - -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408170019.php b/.history/resources/views/user/iuran/upload.blade_20260408170019.php deleted file mode 100644 index e28416b..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408170019.php +++ /dev/null @@ -1,12 +0,0 @@ -@extends('layouts.app') -@section('content') -

Upload Pembayaran

- -
- @csrf - - - - -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408171845.php b/.history/resources/views/user/iuran/upload.blade_20260408171845.php deleted file mode 100644 index 1b6cbb1..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408171845.php +++ /dev/null @@ -1,25 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Upload Bukti Pembayaran

- -
- -

Bulan: {{ $iuran->bulan }}

-

Tahun: {{ $iuran->tahun }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- @csrf - - - - -
- -
- -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408171902.php b/.history/resources/views/user/iuran/upload.blade_20260408171902.php deleted file mode 100644 index 9025d0a..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408171902.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pembayaran

- - - - - - - - - @foreach($iuran as $i) - - - - - - @endforeach -
BulanStatusBukti
{{ $i->bulan }}{{ $i->status }} - @if($i->bukti_pembayaran) - - @else - - - @endif -
-
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408173738.php b/.history/resources/views/user/iuran/upload.blade_20260408173738.php deleted file mode 100644 index 36ad419..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408173738.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Upload Pembayaran

- -
- -

Bulan: {{ $iuran->bulan }}

-

Tahun: {{ $iuran->tahun }}

-

Jumlah: Rp {{ number_format($iuran->jumlah, 0, ',', '.') }}

- -
- @csrf - -
- - -
- - - -
- -
- -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408190621.php b/.history/resources/views/user/iuran/upload.blade_20260408190621.php deleted file mode 100644 index 7be7e87..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408190621.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Upload Bukti Pembayaran

- -
- -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- @csrf - -
- - -
- - -
- -
- -
-@endsection diff --git a/.history/resources/views/user/iuran/upload.blade_20260408191427.php b/.history/resources/views/user/iuran/upload.blade_20260408191427.php deleted file mode 100644 index daaa032..0000000 --- a/.history/resources/views/user/iuran/upload.blade_20260408191427.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Upload Bukti Pembayaran

- -
- -

Bulan: {{ $iuran->bulan }}

-

Jumlah: Rp {{ number_format($iuran->jumlah,0,',','.') }}

- -
- @csrf - -
- - -
- - -
- -
- -
-@endsection diff --git a/.history/resources/views/user/layanan/create.blade_20260410133604.php b/.history/resources/views/user/layanan/create.blade_20260410133604.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/layanan/create.blade_20260410133611.php b/.history/resources/views/user/layanan/create.blade_20260410133611.php deleted file mode 100644 index 4a8d486..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260410133611.php +++ /dev/null @@ -1,33 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Form Pengaduan

- -
- @csrf - -
- - -
- -
- - -
- -
- - -
- - -
-
-@endsection diff --git a/.history/resources/views/user/layanan/create.blade_20260410135602.php b/.history/resources/views/user/layanan/create.blade_20260410135602.php deleted file mode 100644 index c219fb5..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260410135602.php +++ /dev/null @@ -1,29 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Buat Pengaduan

- -
- @csrf - -
- - -
- -
- - -
- - -
- -
-@endsection diff --git a/.history/resources/views/user/layanan/create.blade_20260410141127.php b/.history/resources/views/user/layanan/create.blade_20260410141127.php deleted file mode 100644 index d2d3c0a..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260410141127.php +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
-@csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/layanan/create.blade_20260410155728.php b/.history/resources/views/user/layanan/create.blade_20260410155728.php deleted file mode 100644 index b3dce4a..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260410155728.php +++ /dev/null @@ -1,48 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
-@csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/layanan/create.blade_20260410155736.php b/.history/resources/views/user/layanan/create.blade_20260410155736.php deleted file mode 100644 index 2b7cd8a..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260410155736.php +++ /dev/null @@ -1,58 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
-@csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/create.blade_20260414004100.php b/.history/resources/views/user/layanan/create.blade_20260414004100.php deleted file mode 100644 index ff96f91..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260414004100.php +++ /dev/null @@ -1,59 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
- @csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
- -
-
- -
-@endsection - - \ No newline at end of file diff --git a/.history/resources/views/user/layanan/create.blade_20260414004417.php b/.history/resources/views/user/layanan/create.blade_20260414004417.php deleted file mode 100644 index b6f280b..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260414004417.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
- @csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - \App\Models\Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} - -
- -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/create.blade_20260414004419.php b/.history/resources/views/user/layanan/create.blade_20260414004419.php deleted file mode 100644 index b6f280b..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260414004419.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
- @csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - validate([ - 'kategori_masalah' => 'required', - 'deskripsi' => 'required|min:10', - 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' - ]); - - $penghuni = \App\Models\Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $fotoPath = null; - - if ($request->hasFile('foto')) { - $fotoPath = $request->file('foto')->store('pengaduan', 'public'); - } - - \App\Models\Layanan::create([ - 'penghuni_id' => $penghuni->id, - 'tanggal_pengaduan' => now(), - 'kategori_masalah' => $request->kategori_masalah, - 'deskripsi' => $request->deskripsi, - 'foto' => $fotoPath, - 'status' => 'diajukan' - ]); - - return redirect()->route('user.layanan.status') - ->with('success', 'Pengaduan berhasil dikirim!'); -} - - public function status() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - if (!$penghuni) { - return back()->with('error', 'Data penghuni tidak ditemukan!'); - } - - $layanan = Layanan::where('penghuni_id', $penghuni->id) - ->latest() - ->get(); - - return view('user.layanan.status', compact('layanan')); - } -} - -
- -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/create.blade_20260414004421.php b/.history/resources/views/user/layanan/create.blade_20260414004421.php deleted file mode 100644 index 054bb9d..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260414004421.php +++ /dev/null @@ -1,59 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
- @csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/create.blade_20260414004424.php b/.history/resources/views/user/layanan/create.blade_20260414004424.php deleted file mode 100644 index cf52ed8..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260414004424.php +++ /dev/null @@ -1,61 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- -
- @csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
- -
-
- -
-@endsection - - \ No newline at end of file diff --git a/.history/resources/views/user/layanan/create.blade_20260414004448.php b/.history/resources/views/user/layanan/create.blade_20260414004448.php deleted file mode 100644 index 6fb990f..0000000 --- a/.history/resources/views/user/layanan/create.blade_20260414004448.php +++ /dev/null @@ -1,68 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Formulir Pengaduan Online
-
- -
- @if ($errors->any()) -
- @foreach ($errors->all() as $error) -
{{ $error }}
- @endforeach -
- @endif - -
- @csrf - -
- - -
- -
- - -
- -
- - - -
- -
- - -
- -
- -
-
- -
-@endsection - - \ No newline at end of file diff --git a/.history/resources/views/user/layanan/status.blade_20260410133618.php b/.history/resources/views/user/layanan/status.blade_20260410133618.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/layanan/status.blade_20260410133631.php b/.history/resources/views/user/layanan/status.blade_20260410133631.php deleted file mode 100644 index eb396aa..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410133631.php +++ /dev/null @@ -1,71 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Status Pengaduan Saya

- - - - - - - - - - - - - - @foreach($layanan as $item) - - - - - - - - - - - - @endforeach - -
NoTanggalKategoriStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }}{{ $item->kategori_masalah }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - -
- -
-@endsection diff --git a/.history/resources/views/user/layanan/status.blade_20260410135611.php b/.history/resources/views/user/layanan/status.blade_20260410135611.php deleted file mode 100644 index faa8635..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410135611.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Status Pengaduan

- - - - - - - - - @foreach($layanan as $item) - - - - - - @endforeach - -
KategoriStatusTanggapan
{{ $item->kategori_masalah }}{{ $item->status }}{{ $item->tanggapan_admin ?? '-' }}
- -
-@endsection diff --git a/.history/resources/views/user/layanan/status.blade_20260410135615.php b/.history/resources/views/user/layanan/status.blade_20260410135615.php deleted file mode 100644 index eb396aa..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410135615.php +++ /dev/null @@ -1,71 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Status Pengaduan Saya

- - - - - - - - - - - - - - @foreach($layanan as $item) - - - - - - - - - - - - @endforeach - -
NoTanggalKategoriStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }}{{ $item->kategori_masalah }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - -
- -
-@endsection diff --git a/.history/resources/views/user/layanan/status.blade_20260410135617.php b/.history/resources/views/user/layanan/status.blade_20260410135617.php deleted file mode 100644 index faa8635..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410135617.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Status Pengaduan

- - - - - - - - - @foreach($layanan as $item) - - - - - - @endforeach - -
KategoriStatusTanggapan
{{ $item->kategori_masalah }}{{ $item->status }}{{ $item->tanggapan_admin ?? '-' }}
- -
-@endsection diff --git a/.history/resources/views/user/layanan/status.blade_20260410141140.php b/.history/resources/views/user/layanan/status.blade_20260410141140.php deleted file mode 100644 index 57f6ef5..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410141140.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Status Pengaduan Saya
-
- -
- - - - - - - - - - - - -@foreach($layanan as $item) - - - - - - - - - - - - -@endforeach - - -
NoTanggalStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }} -@if($item->status=='diajukan') -Diajukan -@elseif($item->status=='diproses') -Diproses -@else -Selesai -@endif - - -
- -
-
- -
-@endsection diff --git a/.history/resources/views/user/layanan/status.blade_20260410155702.php b/.history/resources/views/user/layanan/status.blade_20260410155702.php deleted file mode 100644 index 23ea9c0..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410155702.php +++ /dev/null @@ -1,91 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Status Pengaduan Saya
-
- -
- - - - - - - - - - - - -@foreach($layanan as $item) - - - - - - - - - - - - -@endforeach - - -
NoTanggalStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }} -@if($item->status=='diajukan') -Diajukan -@elseif($item->status=='diproses') -Diproses -@else -Selesai -@endif - - -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/status.blade_20260410155923.php b/.history/resources/views/user/layanan/status.blade_20260410155923.php deleted file mode 100644 index ced360d..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410155923.php +++ /dev/null @@ -1,91 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Status Pengaduan Saya
-
- -
- - - - - - - - - - - - -@foreach($layanan as $item) - - - - - - - - - - - - -@endforeach - - -
NoTanggalStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }} - @if($item->status=='diajukan') - Diajukan - @elseif($item->status=='diproses') - Diproses - @else - Selesai - @endif - - -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/status.blade_20260410155924.php b/.history/resources/views/user/layanan/status.blade_20260410155924.php deleted file mode 100644 index 48386cc..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410155924.php +++ /dev/null @@ -1,91 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Status Pengaduan Saya
-
- -
- - - - - - - - - - - - -@foreach($layanan as $item) - - - - - - - - - - - - -@endforeach - - -
NoTanggalStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - -
- -
-
- -
-@endsection - - diff --git a/.history/resources/views/user/layanan/status.blade_20260410160456.php b/.history/resources/views/user/layanan/status.blade_20260410160456.php deleted file mode 100644 index 3e99552..0000000 --- a/.history/resources/views/user/layanan/status.blade_20260410160456.php +++ /dev/null @@ -1,97 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
-
-
Status Pengaduan Saya
-
- -
- - - - - - - - - - - - -@foreach($layanan as $item) - - - - - - - - -@endforeach - - -
NoTanggalStatusDetail
{{ $loop->iteration }}{{ $item->tanggal_pengaduan }} - @if($item->status == 'diajukan') - Diajukan - @elseif($item->status == 'diproses') - Diproses - @else - Selesai - @endif - - -
- -
-
- -
- -{{-- 🔥 MODAL DI LUAR TABLE (WAJIB) --}} -@foreach($layanan as $item) - -@endforeach - -@endsection diff --git a/.history/resources/views/user/pengaduan.blade_20260401112850.php b/.history/resources/views/user/pengaduan.blade_20260401112850.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/pengaduan.blade_20260401112929.php b/.history/resources/views/user/pengaduan.blade_20260401112929.php deleted file mode 100644 index 0d53033..0000000 --- a/.history/resources/views/user/pengaduan.blade_20260401112929.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pembayaran

-
-@endsection diff --git a/.history/resources/views/user/profile/edit.blade_20260401151547.php b/.history/resources/views/user/profile/edit.blade_20260401151547.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/profile/edit.blade_20260401151604.php b/.history/resources/views/user/profile/edit.blade_20260401151604.php deleted file mode 100644 index 06534b8..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401151604.php +++ /dev/null @@ -1,86 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection diff --git a/.history/resources/views/user/profile/edit.blade_20260401151812.php b/.history/resources/views/user/profile/edit.blade_20260401151812.php deleted file mode 100644 index 3fa28f4..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401151812.php +++ /dev/null @@ -1,93 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154105.php b/.history/resources/views/user/profile/edit.blade_20260401154105.php deleted file mode 100644 index 2b25289..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154105.php +++ /dev/null @@ -1,99 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
- - -
-
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154111.php b/.history/resources/views/user/profile/edit.blade_20260401154111.php deleted file mode 100644 index 01aa44b..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154111.php +++ /dev/null @@ -1,94 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154114.php b/.history/resources/views/user/profile/edit.blade_20260401154114.php deleted file mode 100644 index 3fa28f4..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154114.php +++ /dev/null @@ -1,93 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154117.php b/.history/resources/views/user/profile/edit.blade_20260401154117.php deleted file mode 100644 index b1f1790..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154117.php +++ /dev/null @@ -1,94 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- - -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154118.php b/.history/resources/views/user/profile/edit.blade_20260401154118.php deleted file mode 100644 index 2909d17..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154118.php +++ /dev/null @@ -1,95 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- - - -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154123.php b/.history/resources/views/user/profile/edit.blade_20260401154123.php deleted file mode 100644 index f0f42db..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154123.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154127.php b/.history/resources/views/user/profile/edit.blade_20260401154127.php deleted file mode 100644 index ea85681..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154127.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154131.php b/.history/resources/views/user/profile/edit.blade_20260401154131.php deleted file mode 100644 index dc78882..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154131.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154133.php b/.history/resources/views/user/profile/edit.blade_20260401154133.php deleted file mode 100644 index 17c2f3c..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154133.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154134.php b/.history/resources/views/user/profile/edit.blade_20260401154134.php deleted file mode 100644 index fd3cf34..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154134.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154136.php b/.history/resources/views/user/profile/edit.blade_20260401154136.php deleted file mode 100644 index 120a114..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154136.php +++ /dev/null @@ -1,100 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154151.php b/.history/resources/views/user/profile/edit.blade_20260401154151.php deleted file mode 100644 index 19516c3..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154151.php +++ /dev/null @@ -1,97 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154155.php b/.history/resources/views/user/profile/edit.blade_20260401154155.php deleted file mode 100644 index 5c08620..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154155.php +++ /dev/null @@ -1,97 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154333.php b/.history/resources/views/user/profile/edit.blade_20260401154333.php deleted file mode 100644 index b2226e7..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154333.php +++ /dev/null @@ -1,88 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection diff --git a/.history/resources/views/user/profile/edit.blade_20260401154349.php b/.history/resources/views/user/profile/edit.blade_20260401154349.php deleted file mode 100644 index 5c08620..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154349.php +++ /dev/null @@ -1,97 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- NOTIFIKASI --}} - @if(session('success')) -
- {{ session('success') }} -
- @endif - -
- - {{-- PROFILE KIRI --}} -
-
- - - -
{{ auth()->user()->name }}
-

{{ auth()->user()->email }}

- -
- @csrf - - -
- -
-
- - {{-- FORM KANAN --}} -
-
- -
Account Details
- -
- @csrf - @method('PUT') - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - - -
-
-
- -
-
-@endsection - - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154357.php b/.history/resources/views/user/profile/edit.blade_20260401154357.php deleted file mode 100644 index b2226e7..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154357.php +++ /dev/null @@ -1,88 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection diff --git a/.history/resources/views/user/profile/edit.blade_20260401154359.php b/.history/resources/views/user/profile/edit.blade_20260401154359.php deleted file mode 100644 index ad3406a..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154359.php +++ /dev/null @@ -1,94 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401154405.php b/.history/resources/views/user/profile/edit.blade_20260401154405.php deleted file mode 100644 index d5e30c4..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401154405.php +++ /dev/null @@ -1,139 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401155057.php b/.history/resources/views/user/profile/edit.blade_20260401155057.php deleted file mode 100644 index 5d4ce4f..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401155057.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401155103.php b/.history/resources/views/user/profile/edit.blade_20260401155103.php deleted file mode 100644 index cf30cfc..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401155103.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160053.php b/.history/resources/views/user/profile/edit.blade_20260401160053.php deleted file mode 100644 index 15db8c2..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160053.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160057.php b/.history/resources/views/user/profile/edit.blade_20260401160057.php deleted file mode 100644 index 64aa2aa..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160057.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160059.php b/.history/resources/views/user/profile/edit.blade_20260401160059.php deleted file mode 100644 index cbee725..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160059.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160100.php b/.history/resources/views/user/profile/edit.blade_20260401160100.php deleted file mode 100644 index 64aa2aa..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160100.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160111.php b/.history/resources/views/user/profile/edit.blade_20260401160111.php deleted file mode 100644 index 4a24004..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160111.php +++ /dev/null @@ -1,146 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- user()->photo - ? asset('profile/' . auth()->user()->photo) . '?v=' . time() - : 'https://i.pravatar.cc/150?img=3' }}" - class="avatar"> -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160115.php b/.history/resources/views/user/profile/edit.blade_20260401160115.php deleted file mode 100644 index 64aa2aa..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160115.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160121.php b/.history/resources/views/user/profile/edit.blade_20260401160121.php deleted file mode 100644 index e153130..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160121.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/profile/edit.blade_20260401160125.php b/.history/resources/views/user/profile/edit.blade_20260401160125.php deleted file mode 100644 index bb2e9c5..0000000 --- a/.history/resources/views/user/profile/edit.blade_20260401160125.php +++ /dev/null @@ -1,145 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -
- - {{-- LEFT PROFILE --}} -
-
- -
- -
- -
{{ auth()->user()->name }}
- {{ auth()->user()->email }} - -
- @csrf - - - - -
- -
-
- - {{-- RIGHT FORM --}} -
-
- -
Account Settings
- -
- @csrf - @method('PUT') - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- -
-
- -
- -
-@endsection - - diff --git a/.history/resources/views/user/rumah.blade_20260331091101.php b/.history/resources/views/user/rumah.blade_20260331091101.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/rumah.blade_20260331091132.php b/.history/resources/views/user/rumah.blade_20260331091132.php deleted file mode 100644 index c61850b..0000000 --- a/.history/resources/views/user/rumah.blade_20260331091132.php +++ /dev/null @@ -1,21 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - @if($penghuni && $penghuni->rumah) -
-
-

Blok {{ $penghuni->rumah->blok }}

-

No Rumah {{ $penghuni->rumah->no_rumah }}

-

Status {{ $penghuni->rumah->status }}

-
-
- @else -
- Anda belum memiliki rumah -
- @endif -
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331111617.php b/.history/resources/views/user/rumah.blade_20260331111617.php deleted file mode 100644 index 0ad0a29..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111617.php +++ /dev/null @@ -1,127 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN: ambil rumah kosong - $rumahKosong = Rumah::where('status', 'Kosong')->get(); - - return view('user.rumah', compact('penghuni', 'rumahKosong')); - } - - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/resources/views/user/rumah.blade_20260331111620.php b/.history/resources/views/user/rumah.blade_20260331111620.php deleted file mode 100644 index 0ad0a29..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111620.php +++ /dev/null @@ -1,127 +0,0 @@ -where('email', Auth::user()->email) - ->first(); - - return view('user.home', compact('penghuni')); - } - - // ========================= - // PROFIL - // ========================= - public function profil() - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - return view('user.profil', compact('penghuni')); - } - - public function updateProfil(Request $request) - { - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - $penghuni->update([ - 'nama' => $request->nama, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - ]); - - return back()->with('success', 'Profil berhasil diupdate'); - } - - // ========================= - // RUMAH - // ========================= - public function rumah() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); - - // 🔥 TAMBAHAN: ambil rumah kosong - $rumahKosong = Rumah::where('status', 'Kosong')->get(); - - return view('user.rumah', compact('penghuni', 'rumahKosong')); - } - - // ========================= - // 🔥 TAMBAHAN: PILIH RUMAH - // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); - - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } - - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - - // kalau belum ada, buat otomatis - if (!$penghuni) { - $penghuni = Penghuni::create([ - 'nama' => Auth::user()->name, - 'email' => Auth::user()->email, - 'status' => 'Aktif' - ]); - } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); - } - - // ========================= - // IURAN - // ========================= - public function iuran() - { - return view('user.iuran'); - } - - // ========================= - // PENGADUAN - // ========================= - public function pengaduan() - { - return view('user.pengaduan'); - } - - public function storePengaduan(Request $request) - { - // sementara dummy dulu - return back()->with('success', 'Pengaduan berhasil dikirim'); - } - - // ========================= - // PENGUMUMAN - // ========================= - public function pengumuman() - { - return view('user.pengumuman'); - } -} diff --git a/.history/resources/views/user/rumah.blade_20260331111622.php b/.history/resources/views/user/rumah.blade_20260331111622.php deleted file mode 100644 index c61850b..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111622.php +++ /dev/null @@ -1,21 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - @if($penghuni && $penghuni->rumah) -
-
-

Blok {{ $penghuni->rumah->blok }}

-

No Rumah {{ $penghuni->rumah->no_rumah }}

-

Status {{ $penghuni->rumah->status }}

-
-
- @else -
- Anda belum memiliki rumah -
- @endif -
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331111738.php b/.history/resources/views/user/rumah.blade_20260331111738.php deleted file mode 100644 index 8fad384..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111738.php +++ /dev/null @@ -1,18 +0,0 @@ -
-
- Pilih Rumah -
- -
-
- @foreach($rumahKosong as $r) - - @endforeach -
-
-
diff --git a/.history/resources/views/user/rumah.blade_20260331111740.php b/.history/resources/views/user/rumah.blade_20260331111740.php deleted file mode 100644 index 8fad384..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111740.php +++ /dev/null @@ -1,18 +0,0 @@ -
-
- Pilih Rumah -
- -
-
- @foreach($rumahKosong as $r) - - @endforeach -
-
-
diff --git a/.history/resources/views/user/rumah.blade_20260331111742.php b/.history/resources/views/user/rumah.blade_20260331111742.php deleted file mode 100644 index c61850b..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111742.php +++ /dev/null @@ -1,21 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - @if($penghuni && $penghuni->rumah) -
-
-

Blok {{ $penghuni->rumah->blok }}

-

No Rumah {{ $penghuni->rumah->no_rumah }}

-

Status {{ $penghuni->rumah->status }}

-
-
- @else -
- Anda belum memiliki rumah -
- @endif -
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331111925.php b/.history/resources/views/user/rumah.blade_20260331111925.php deleted file mode 100644 index 072c885..0000000 --- a/.history/resources/views/user/rumah.blade_20260331111925.php +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH USER --}} - @if($penghuni && $penghuni->rumah) -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- @else -
- Anda belum memiliki rumah -
- @endif - - {{-- 🔥 TAMBAHAN: PILIH RUMAH --}} -
-
- Pilih Rumah Tersedia -
- -
-
- - @foreach($rumahKosong as $r) - - @endforeach - -
-
-
- -
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331112800.php b/.history/resources/views/user/rumah.blade_20260331112800.php deleted file mode 100644 index 3762d46..0000000 --- a/.history/resources/views/user/rumah.blade_20260331112800.php +++ /dev/null @@ -1,63 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->where('no_rumah', $i)->first(); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') - - {{ $i }} - - @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331113853.php b/.history/resources/views/user/rumah.blade_20260331113853.php deleted file mode 100644 index c119130..0000000 --- a/.history/resources/views/user/rumah.blade_20260331113853.php +++ /dev/null @@ -1,64 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
-@for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - -@endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331113901.php b/.history/resources/views/user/rumah.blade_20260331113901.php deleted file mode 100644 index fc34f1c..0000000 --- a/.history/resources/views/user/rumah.blade_20260331113901.php +++ /dev/null @@ -1,64 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260331114046.php b/.history/resources/views/user/rumah.blade_20260331114046.php deleted file mode 100644 index df0f764..0000000 --- a/.history/resources/views/user/rumah.blade_20260331114046.php +++ /dev/null @@ -1,117 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - diff --git a/.history/resources/views/user/rumah.blade_20260331114104.php b/.history/resources/views/user/rumah.blade_20260331114104.php deleted file mode 100644 index 2112878..0000000 --- a/.history/resources/views/user/rumah.blade_20260331114104.php +++ /dev/null @@ -1,128 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331115733.php b/.history/resources/views/user/rumah.blade_20260331115733.php deleted file mode 100644 index 6130114..0000000 --- a/.history/resources/views/user/rumah.blade_20260331115733.php +++ /dev/null @@ -1,130 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331115736.php b/.history/resources/views/user/rumah.blade_20260331115736.php deleted file mode 100644 index 914a471..0000000 --- a/.history/resources/views/user/rumah.blade_20260331115736.php +++ /dev/null @@ -1,134 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
-@endif - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331115738.php b/.history/resources/views/user/rumah.blade_20260331115738.php deleted file mode 100644 index b0186b8..0000000 --- a/.history/resources/views/user/rumah.blade_20260331115738.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
-@endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331115743.php b/.history/resources/views/user/rumah.blade_20260331115743.php deleted file mode 100644 index 14fc1ea..0000000 --- a/.history/resources/views/user/rumah.blade_20260331115743.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331123602.php b/.history/resources/views/user/rumah.blade_20260331123602.php deleted file mode 100644 index d20111c..0000000 --- a/.history/resources/views/user/rumah.blade_20260331123602.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331133715.php b/.history/resources/views/user/rumah.blade_20260331133715.php deleted file mode 100644 index 05d9010..0000000 --- a/.history/resources/views/user/rumah.blade_20260331133715.php +++ /dev/null @@ -1,139 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

-@endif - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331133719.php b/.history/resources/views/user/rumah.blade_20260331133719.php deleted file mode 100644 index 05d9010..0000000 --- a/.history/resources/views/user/rumah.blade_20260331133719.php +++ /dev/null @@ -1,139 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if($penghuni->status_huni == 'Kontrak') -

Tanggal Keluar: {{ $penghuni->tanggal_keluar }}

-@endif - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331133721.php b/.history/resources/views/user/rumah.blade_20260331133721.php deleted file mode 100644 index a3723c1..0000000 --- a/.history/resources/views/user/rumah.blade_20260331133721.php +++ /dev/null @@ -1,137 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331133723.php b/.history/resources/views/user/rumah.blade_20260331133723.php deleted file mode 100644 index 14fc1ea..0000000 --- a/.history/resources/views/user/rumah.blade_20260331133723.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331154652.php b/.history/resources/views/user/rumah.blade_20260331154652.php deleted file mode 100644 index 1a23570..0000000 --- a/.history/resources/views/user/rumah.blade_20260331154652.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
-
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331154657.php b/.history/resources/views/user/rumah.blade_20260331154657.php deleted file mode 100644 index 14fc1ea..0000000 --- a/.history/resources/views/user/rumah.blade_20260331154657.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
- Pilih Kavling -
- -
- -
- @for($i = 1; $i <= 30; $i++) - - @php - $dataRumah = $rumah->firstWhere('no_rumah', $i); - @endphp - - @if($dataRumah) - @if($dataRumah->status == 'Kosong') -
- {{ $i }} -
- @else -
- {{ $i }} -
- @endif - @else -
- {{ $i }} -
- @endif - - @endfor -
- - {{-- KETERANGAN --}} -
- Kosong - Terisi -
- -
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331154701.php b/.history/resources/views/user/rumah.blade_20260331154701.php deleted file mode 100644 index 1a23570..0000000 --- a/.history/resources/views/user/rumah.blade_20260331154701.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
-
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331154710.php b/.history/resources/views/user/rumah.blade_20260331154710.php deleted file mode 100644 index 878f1e2..0000000 --- a/.history/resources/views/user/rumah.blade_20260331154710.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
-
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331154750.php b/.history/resources/views/user/rumah.blade_20260331154750.php deleted file mode 100644 index e1c3bfb..0000000 --- a/.history/resources/views/user/rumah.blade_20260331154750.php +++ /dev/null @@ -1,103 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
-
-
-
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331154810.php b/.history/resources/views/user/rumah.blade_20260331154810.php deleted file mode 100644 index 1ae1e12..0000000 --- a/.history/resources/views/user/rumah.blade_20260331154810.php +++ /dev/null @@ -1,130 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Rumah Saya

- - {{-- DATA RUMAH --}} - - @if(session('success')) -
- {{ session('success') }} -
- @endif - - @if($penghuni && $penghuni->rumah) -
- Rumah Anda: - Blok {{ $penghuni->rumah->blok }} - No {{ $penghuni->rumah->no_rumah }} -
- @else -
- Anda belum memiliki rumah, silakan pilih kavling -
- @endif - - {{-- KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
-
-
-
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331160954.php b/.history/resources/views/user/rumah.blade_20260331160954.php deleted file mode 100644 index 6d9a241..0000000 --- a/.history/resources/views/user/rumah.blade_20260331160954.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331161437.php b/.history/resources/views/user/rumah.blade_20260331161437.php deleted file mode 100644 index d0d1be5..0000000 --- a/.history/resources/views/user/rumah.blade_20260331161437.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331161501.php b/.history/resources/views/user/rumah.blade_20260331161501.php deleted file mode 100644 index d0d1be5..0000000 --- a/.history/resources/views/user/rumah.blade_20260331161501.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331161540.php b/.history/resources/views/user/rumah.blade_20260331161540.php deleted file mode 100644 index ed9bc90..0000000 --- a/.history/resources/views/user/rumah.blade_20260331161540.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331161930.php b/.history/resources/views/user/rumah.blade_20260331161930.php deleted file mode 100644 index c0ef493..0000000 --- a/.history/resources/views/user/rumah.blade_20260331161930.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331161932.php b/.history/resources/views/user/rumah.blade_20260331161932.php deleted file mode 100644 index 698fff8..0000000 --- a/.history/resources/views/user/rumah.blade_20260331161932.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162031.php b/.history/resources/views/user/rumah.blade_20260331162031.php deleted file mode 100644 index 1c2c396..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162031.php +++ /dev/null @@ -1,144 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162035.php b/.history/resources/views/user/rumah.blade_20260331162035.php deleted file mode 100644 index b26f51b..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162035.php +++ /dev/null @@ -1,144 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162129.php b/.history/resources/views/user/rumah.blade_20260331162129.php deleted file mode 100644 index 4b8d087..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162129.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162133.php b/.history/resources/views/user/rumah.blade_20260331162133.php deleted file mode 100644 index b0f6a7a..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162133.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162246.php b/.history/resources/views/user/rumah.blade_20260331162246.php deleted file mode 100644 index 698fff8..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162246.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162250.php b/.history/resources/views/user/rumah.blade_20260331162250.php deleted file mode 100644 index ed9bc90..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162250.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162252.php b/.history/resources/views/user/rumah.blade_20260331162252.php deleted file mode 100644 index d0d1be5..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162252.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331162253.php b/.history/resources/views/user/rumah.blade_20260331162253.php deleted file mode 100644 index ed9bc90..0000000 --- a/.history/resources/views/user/rumah.blade_20260331162253.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331163504.php b/.history/resources/views/user/rumah.blade_20260331163504.php deleted file mode 100644 index 75e6d2d..0000000 --- a/.history/resources/views/user/rumah.blade_20260331163504.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331163710.php b/.history/resources/views/user/rumah.blade_20260331163710.php deleted file mode 100644 index c62491d..0000000 --- a/.history/resources/views/user/rumah.blade_20260331163710.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331163717.php b/.history/resources/views/user/rumah.blade_20260331163717.php deleted file mode 100644 index 6b098a1..0000000 --- a/.history/resources/views/user/rumah.blade_20260331163717.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331163849.php b/.history/resources/views/user/rumah.blade_20260331163849.php deleted file mode 100644 index 36dcbd6..0000000 --- a/.history/resources/views/user/rumah.blade_20260331163849.php +++ /dev/null @@ -1,153 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331163853.php b/.history/resources/views/user/rumah.blade_20260331163853.php deleted file mode 100644 index 90bc66b..0000000 --- a/.history/resources/views/user/rumah.blade_20260331163853.php +++ /dev/null @@ -1,153 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331163921.php b/.history/resources/views/user/rumah.blade_20260331163921.php deleted file mode 100644 index 225389d..0000000 --- a/.history/resources/views/user/rumah.blade_20260331163921.php +++ /dev/null @@ -1,153 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331164223.php b/.history/resources/views/user/rumah.blade_20260331164223.php deleted file mode 100644 index 75e6d2d..0000000 --- a/.history/resources/views/user/rumah.blade_20260331164223.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331164225.php b/.history/resources/views/user/rumah.blade_20260331164225.php deleted file mode 100644 index ed9bc90..0000000 --- a/.history/resources/views/user/rumah.blade_20260331164225.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331164226.php b/.history/resources/views/user/rumah.blade_20260331164226.php deleted file mode 100644 index d0d1be5..0000000 --- a/.history/resources/views/user/rumah.blade_20260331164226.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260331164227.php b/.history/resources/views/user/rumah.blade_20260331164227.php deleted file mode 100644 index ed9bc90..0000000 --- a/.history/resources/views/user/rumah.blade_20260331164227.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416160002.php b/.history/resources/views/user/rumah.blade_20260416160002.php deleted file mode 100644 index 979bb1e..0000000 --- a/.history/resources/views/user/rumah.blade_20260416160002.php +++ /dev/null @@ -1,85 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection diff --git a/.history/resources/views/user/rumah.blade_20260416160008.php b/.history/resources/views/user/rumah.blade_20260416160008.php deleted file mode 100644 index ed9bc90..0000000 --- a/.history/resources/views/user/rumah.blade_20260416160008.php +++ /dev/null @@ -1,142 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- -

Rumah Saya

- - {{-- CEK SUDAH PUNYA RUMAH --}} - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - - {{-- BELUM PUNYA RUMAH --}} -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- 🔥 BAGIAN INI TEMPAT KODE KAMU --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416160023.php b/.history/resources/views/user/rumah.blade_20260416160023.php deleted file mode 100644 index 5e3daa9..0000000 --- a/.history/resources/views/user/rumah.blade_20260416160023.php +++ /dev/null @@ -1,130 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416161002.php b/.history/resources/views/user/rumah.blade_20260416161002.php deleted file mode 100644 index 292d237..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161002.php +++ /dev/null @@ -1,128 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416161133.php b/.history/resources/views/user/rumah.blade_20260416161133.php deleted file mode 100644 index 95d6f24..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161133.php +++ /dev/null @@ -1,130 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416161135.php b/.history/resources/views/user/rumah.blade_20260416161135.php deleted file mode 100644 index dcf9c93..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161135.php +++ /dev/null @@ -1,135 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416161136.php b/.history/resources/views/user/rumah.blade_20260416161136.php deleted file mode 100644 index fbccb2d..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161136.php +++ /dev/null @@ -1,127 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - - - - - - \ No newline at end of file diff --git a/.history/resources/views/user/rumah.blade_20260416161605.php b/.history/resources/views/user/rumah.blade_20260416161605.php deleted file mode 100644 index 2a6ae22..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161605.php +++ /dev/null @@ -1,129 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
-@endsection - -@push('scripts') - -@endpush - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416161658.php b/.history/resources/views/user/rumah.blade_20260416161658.php deleted file mode 100644 index a0fc586..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161658.php +++ /dev/null @@ -1,162 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
- - -@endsection - -@push('scripts') - -@endpush - - - - \ No newline at end of file diff --git a/.history/resources/views/user/rumah.blade_20260416161719.php b/.history/resources/views/user/rumah.blade_20260416161719.php deleted file mode 100644 index 65449fc..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161719.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
- - -@endsection - -@push('scripts') - -@endpush - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416161947.php b/.history/resources/views/user/rumah.blade_20260416161947.php deleted file mode 100644 index 856d401..0000000 --- a/.history/resources/views/user/rumah.blade_20260416161947.php +++ /dev/null @@ -1,131 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - @endif - -
- - -@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162011.php b/.history/resources/views/user/rumah.blade_20260416162011.php deleted file mode 100644 index 3a48c31..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162011.php +++ /dev/null @@ -1,132 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - @endif - -
- - -@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162012.php b/.history/resources/views/user/rumah.blade_20260416162012.php deleted file mode 100644 index ced4a61..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162012.php +++ /dev/null @@ -1,133 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
- - -@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162013.php b/.history/resources/views/user/rumah.blade_20260416162013.php deleted file mode 100644 index eff5a16..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162013.php +++ /dev/null @@ -1,164 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
- - -@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162016.php b/.history/resources/views/user/rumah.blade_20260416162016.php deleted file mode 100644 index 5456623..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162016.php +++ /dev/null @@ -1,162 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
-@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162354.php b/.history/resources/views/user/rumah.blade_20260416162354.php deleted file mode 100644 index 5bfbb1b..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162354.php +++ /dev/null @@ -1,162 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
-@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162450.php b/.history/resources/views/user/rumah.blade_20260416162450.php deleted file mode 100644 index 9eb350b..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162450.php +++ /dev/null @@ -1,165 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
-@endsection - -@section('scripts') - -@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/user/rumah.blade_20260416162500.php b/.history/resources/views/user/rumah.blade_20260416162500.php deleted file mode 100644 index ac5051c..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162500.php +++ /dev/null @@ -1,167 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
-@endsection - -@section('scripts') - -@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/user/rumah.blade_20260416162511.php b/.history/resources/views/user/rumah.blade_20260416162511.php deleted file mode 100644 index 8dcc35a..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162511.php +++ /dev/null @@ -1,176 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
-@endsection - -@section('scripts') - -@endsection - - - - diff --git a/.history/resources/views/user/rumah.blade_20260416162512.php b/.history/resources/views/user/rumah.blade_20260416162512.php deleted file mode 100644 index c1e2f57..0000000 --- a/.history/resources/views/user/rumah.blade_20260416162512.php +++ /dev/null @@ -1,177 +0,0 @@ -@extends('layouts.app') - -@section('content') -
- - {{-- 🔥 DATA ANDA --}} -
-
- -
👤 Data Anda
- -

Nama: {{ auth()->user()->name }}

-

Email: {{ auth()->user()->email }}

- -

- Status Huni: - @if($penghuni && $penghuni->rumah) - Tetap - @else - Belum Punya Rumah - @endif -

- -
-
- - - {{-- 🔥 RUMAH SAYA --}} -

🏠 Rumah Saya

- - @if($penghuni && $penghuni->rumah) - -
-
-

Blok: {{ $penghuni->rumah->blok }}

-

No Rumah: {{ $penghuni->rumah->no_rumah }}

-

Status: {{ $penghuni->rumah->status }}

-
-
- - @else - -
- Anda belum memiliki rumah, silakan pilih kavling -
- - {{-- PILIH KAVLING --}} -
-
Pilih Kavling
- -
-
- - @foreach($rumahList as $r) - - @endforeach - -
- -
- Kosong - Terisi -
- -
-
- - - - @endif - -
-@endsection - -@section('scripts') - -@endsection - - - - \ No newline at end of file diff --git a/.history/resources/views/user/status_pembayara.blade_20260401113433.php b/.history/resources/views/user/status_pembayara.blade_20260401113433.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/status_pembayara.blade_20260401113610.php b/.history/resources/views/user/status_pembayara.blade_20260401113610.php deleted file mode 100644 index 2212c42..0000000 --- a/.history/resources/views/user/status_pembayara.blade_20260401113610.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pengaduan

-
-@endsection diff --git a/.history/resources/views/user/status_pembayaran.blade_20260401112430.php b/.history/resources/views/user/status_pembayaran.blade_20260401112430.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/status_pembayaran.blade_20260401112549.php b/.history/resources/views/user/status_pembayaran.blade_20260401112549.php deleted file mode 100644 index 0d53033..0000000 --- a/.history/resources/views/user/status_pembayaran.blade_20260401112549.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pembayaran

-
-@endsection diff --git a/.history/resources/views/user/status_pembayaran.blade_20260401113628.php b/.history/resources/views/user/status_pembayaran.blade_20260401113628.php deleted file mode 100644 index 0d53033..0000000 --- a/.history/resources/views/user/status_pembayaran.blade_20260401113628.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pembayaran

-
-@endsection diff --git a/.history/resources/views/user/status_pengaduan.blade_20260401112430.php b/.history/resources/views/user/status_pengaduan.blade_20260401112430.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/status_pengaduan.blade_20260401112559.php b/.history/resources/views/user/status_pengaduan.blade_20260401112559.php deleted file mode 100644 index 2212c42..0000000 --- a/.history/resources/views/user/status_pengaduan.blade_20260401112559.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pengaduan

-
-@endsection diff --git a/.history/resources/views/user/statuspengaduan.blade_20260401112910.php b/.history/resources/views/user/statuspengaduan.blade_20260401112910.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/statuspengaduan.blade_20260401112949.php b/.history/resources/views/user/statuspengaduan.blade_20260401112949.php deleted file mode 100644 index 0d53033..0000000 --- a/.history/resources/views/user/statuspengaduan.blade_20260401112949.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pembayaran

-
-@endsection diff --git a/.history/resources/views/user/upload_pembayaran.blade_20260401112430.php b/.history/resources/views/user/upload_pembayaran.blade_20260401112430.php deleted file mode 100644 index e69de29..0000000 diff --git a/.history/resources/views/user/upload_pembayaran.blade_20260401112539.php b/.history/resources/views/user/upload_pembayaran.blade_20260401112539.php deleted file mode 100644 index 09630fe..0000000 --- a/.history/resources/views/user/upload_pembayaran.blade_20260401112539.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Upload Pembayaran

-
-@endsection diff --git a/.history/resources/views/user/upload_pembayaran.blade_20260401113634.php b/.history/resources/views/user/upload_pembayaran.blade_20260401113634.php deleted file mode 100644 index 2212c42..0000000 --- a/.history/resources/views/user/upload_pembayaran.blade_20260401113634.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

Status Pengaduan

-
-@endsection diff --git a/.history/resources/views/user/upload_pembayaran.blade_20260401113642.php b/.history/resources/views/user/upload_pembayaran.blade_20260401113642.php deleted file mode 100644 index 48aceff..0000000 --- a/.history/resources/views/user/upload_pembayaran.blade_20260401113642.php +++ /dev/null @@ -1,7 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-

upload pembayaran

-
-@endsection diff --git a/.history/routes/web_20260329194301.php b/.history/routes/web_20260329194301.php deleted file mode 100644 index a64bd0e..0000000 --- a/.history/routes/web_20260329194301.php +++ /dev/null @@ -1,59 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== -// Routes untuk Layanan -// ============================== - -Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - -// simpan pengaduan (dari form/modal) -Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - -// tanggapi pengaduan (modal tanggapan admin) -Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - -// hapus data -Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329194310.php b/.history/routes/web_20260329194310.php deleted file mode 100644 index 8043939..0000000 --- a/.history/routes/web_20260329194310.php +++ /dev/null @@ -1,59 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329194647.php b/.history/routes/web_20260329194647.php deleted file mode 100644 index 7924e3c..0000000 --- a/.history/routes/web_20260329194647.php +++ /dev/null @@ -1,60 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329194652.php b/.history/routes/web_20260329194652.php deleted file mode 100644 index 8fd18e2..0000000 --- a/.history/routes/web_20260329194652.php +++ /dev/null @@ -1,60 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329194654.php b/.history/routes/web_20260329194654.php deleted file mode 100644 index babee52..0000000 --- a/.history/routes/web_20260329194654.php +++ /dev/null @@ -1,59 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329194655.php b/.history/routes/web_20260329194655.php deleted file mode 100644 index 0f6678a..0000000 --- a/.history/routes/web_20260329194655.php +++ /dev/null @@ -1,59 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329194657.php b/.history/routes/web_20260329194657.php deleted file mode 100644 index 7eec7a0..0000000 --- a/.history/routes/web_20260329194657.php +++ /dev/null @@ -1,60 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210551.php b/.history/routes/web_20260329210551.php deleted file mode 100644 index a48f9d8..0000000 --- a/.history/routes/web_20260329210551.php +++ /dev/null @@ -1,62 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210629.php b/.history/routes/web_20260329210629.php deleted file mode 100644 index 4ac040b..0000000 --- a/.history/routes/web_20260329210629.php +++ /dev/null @@ -1,76 +0,0 @@ -route('dashboard.index'); -}); - -// AUTH -Route::get('/login', [AuthController::class, 'login'])->name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -// redirect default -Route::get('/', function () { - return redirect('/login'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210646.php b/.history/routes/web_20260329210646.php deleted file mode 100644 index 799bc63..0000000 --- a/.history/routes/web_20260329210646.php +++ /dev/null @@ -1,63 +0,0 @@ -route('dashboard.index'); -}); - - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210648.php b/.history/routes/web_20260329210648.php deleted file mode 100644 index a48f9d8..0000000 --- a/.history/routes/web_20260329210648.php +++ /dev/null @@ -1,62 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210653.php b/.history/routes/web_20260329210653.php deleted file mode 100644 index 6b25955..0000000 --- a/.history/routes/web_20260329210653.php +++ /dev/null @@ -1,63 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210655.php b/.history/routes/web_20260329210655.php deleted file mode 100644 index 3148efb..0000000 --- a/.history/routes/web_20260329210655.php +++ /dev/null @@ -1,64 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210708.php b/.history/routes/web_20260329210708.php deleted file mode 100644 index 475de1a..0000000 --- a/.history/routes/web_20260329210708.php +++ /dev/null @@ -1,98 +0,0 @@ -prefix('admin')->group(function () { - - // Dashboard - Route::get('/dashboard', [DashboardController::class, 'index']) - ->name('dashboard.index'); - - // ======================== - // PENGHUNI - // ======================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ======================== - // IURAN - // ======================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ======================== - // LAYANAN (PENGADUAN) - // ======================== - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - -Route::get('/dashboard', function () { - return redirect()->route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210710.php b/.history/routes/web_20260329210710.php deleted file mode 100644 index 3148efb..0000000 --- a/.history/routes/web_20260329210710.php +++ /dev/null @@ -1,64 +0,0 @@ -route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210716.php b/.history/routes/web_20260329210716.php deleted file mode 100644 index eb674ca..0000000 --- a/.history/routes/web_20260329210716.php +++ /dev/null @@ -1,76 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -// redirect default -Route::get('/', function () { - return redirect('/login'); -}); - -Route::get('/dashboard', function () { - return redirect()->route('dashboard.index'); -}); - -Route::prefix('admin')->group(function () { - // Dashboard - Route::get('/dashboard', [dashboardController::class, 'index'])->name('dashboard.index'); - - // =============================== - // Routes untuk Penghuni - // =============================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // =============================== - // Routes untuk Iuran - // =============================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ============================== - // Routes untuk Layanan - // ============================== - - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - - // simpan pengaduan (dari form/modal) - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - - // tanggapi pengaduan (modal tanggapan admin) - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - - // hapus data - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210813.php b/.history/routes/web_20260329210813.php deleted file mode 100644 index e032ac8..0000000 --- a/.history/routes/web_20260329210813.php +++ /dev/null @@ -1,72 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -// redirect default -Route::get('/', function () { - return redirect('/login'); -}); - -Route::get('/dashboard', function () { - return redirect()->route('dashboard.index'); -}); - -RRoute::middleware(['auth'])->prefix('admin')->group(function () { - - // Dashboard - Route::get('/dashboard', [DashboardController::class, 'index']) - ->name('dashboard.index'); - - // ======================== - // PENGHUNI - // ======================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ======================== - // IURAN - // ======================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ======================== - // LAYANAN (PENGADUAN) - // ======================== - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329210836.php b/.history/routes/web_20260329210836.php deleted file mode 100644 index 77fa781..0000000 --- a/.history/routes/web_20260329210836.php +++ /dev/null @@ -1,72 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -// redirect default -Route::get('/', function () { - return redirect('/login'); -}); - -Route::get('/dashboard', function () { - return redirect()->route('dashboard.index'); -}); - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - // Dashboard - Route::get('/dashboard', [DashboardController::class, 'index']) - ->name('dashboard.index'); - - // ======================== - // PENGHUNI - // ======================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ======================== - // IURAN - // ======================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ======================== - // LAYANAN (PENGADUAN) - // ======================== - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329211013.php b/.history/routes/web_20260329211013.php deleted file mode 100644 index 0616ced..0000000 --- a/.history/routes/web_20260329211013.php +++ /dev/null @@ -1,72 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -// redirect default -Route::get('/', function () { - return redirect('/login'); -}); - -Route::get('/dashboard', function () { - return redirect()->route('dashboard.index'); -}); - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - // Dashboard - Route::get('/dashboard', [DashboardController::class, 'index']) - ->name('dashboard.index'); - - // ======================== - // PENGHUNI - // ======================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ======================== - // IURAN - // ======================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ======================== - // LAYANAN (PENGADUAN) - // ========================a - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - -Route::prefix('admin')->group(function () { - Route::resource('iuran', IuranController::class); -}); - diff --git a/.history/routes/web_20260329211015.php b/.history/routes/web_20260329211015.php deleted file mode 100644 index e81d9ef..0000000 --- a/.history/routes/web_20260329211015.php +++ /dev/null @@ -1,78 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// register (hanya untuk penghuni) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// logout -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN ROUTES (LOGIN WAJIB) -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - // ======================== - // DASHBOARD - // ======================== - Route::get('/dashboard', [DashboardController::class, 'index']) - ->name('dashboard.index'); - - - // ======================== - // PENGHUNI - // ======================== - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - - // ======================== - // IURAN - // ======================== - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - - // ======================== - // LAYANAN (PENGADUAN) - // ======================== - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); diff --git a/.history/routes/web_20260329215555.php b/.history/routes/web_20260329215555.php deleted file mode 100644 index ac94f95..0000000 --- a/.history/routes/web_20260329215555.php +++ /dev/null @@ -1,80 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331001358.php b/.history/routes/web_20260331001358.php deleted file mode 100644 index c2d18f1..0000000 --- a/.history/routes/web_20260331001358.php +++ /dev/null @@ -1,82 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331001547.php b/.history/routes/web_20260331001547.php deleted file mode 100644 index 26abb32..0000000 --- a/.history/routes/web_20260331001547.php +++ /dev/null @@ -1,83 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331002159.php b/.history/routes/web_20260331002159.php deleted file mode 100644 index b3eb8f2..0000000 --- a/.history/routes/web_20260331002159.php +++ /dev/null @@ -1,84 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::resource('rumah', RumahController::class); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331002207.php b/.history/routes/web_20260331002207.php deleted file mode 100644 index 3ea263b..0000000 --- a/.history/routes/web_20260331002207.php +++ /dev/null @@ -1,84 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::resource('rumah', Controller::class); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331002210.php b/.history/routes/web_20260331002210.php deleted file mode 100644 index e1b8354..0000000 --- a/.history/routes/web_20260331002210.php +++ /dev/null @@ -1,84 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::resource('rumah', PenghuniController::class); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331002656.php b/.history/routes/web_20260331002656.php deleted file mode 100644 index 725ef36..0000000 --- a/.history/routes/web_20260331002656.php +++ /dev/null @@ -1,86 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); -Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); -Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331002702.php b/.history/routes/web_20260331002702.php deleted file mode 100644 index fa4486f..0000000 --- a/.history/routes/web_20260331002702.php +++ /dev/null @@ -1,86 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::get('/dashboard', function () { - return view('user.dashboard'); - })->name('user.dashboard'); - -}); diff --git a/.history/routes/web_20260331090427.php b/.history/routes/web_20260331090427.php deleted file mode 100644 index 47d4405..0000000 --- a/.history/routes/web_20260331090427.php +++ /dev/null @@ -1,99 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); - -}); diff --git a/.history/routes/web_20260331090549.php b/.history/routes/web_20260331090549.php deleted file mode 100644 index 9464a94..0000000 --- a/.history/routes/web_20260331090549.php +++ /dev/null @@ -1,99 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); - -}); diff --git a/.history/routes/web_20260331093427.php b/.history/routes/web_20260331093427.php deleted file mode 100644 index afe5db5..0000000 --- a/.history/routes/web_20260331093427.php +++ /dev/null @@ -1,101 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); - -}); diff --git a/.history/routes/web_20260331093428.php b/.history/routes/web_20260331093428.php deleted file mode 100644 index 59015e5..0000000 --- a/.history/routes/web_20260331093428.php +++ /dev/null @@ -1,101 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('user')->group(function () { - - Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/user/home', [UserController::class, 'index']); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); - -}); diff --git a/.history/routes/web_20260331094525.php b/.history/routes/web_20260331094525.php deleted file mode 100644 index ac28344..0000000 --- a/.history/routes/web_20260331094525.php +++ /dev/null @@ -1,97 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); - -}); diff --git a/.history/routes/web_20260331094530.php b/.history/routes/web_20260331094530.php deleted file mode 100644 index 290a8cc..0000000 --- a/.history/routes/web_20260331094530.php +++ /dev/null @@ -1,95 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331111718.php b/.history/routes/web_20260331111718.php deleted file mode 100644 index e443053..0000000 --- a/.history/routes/web_20260331111718.php +++ /dev/null @@ -1,97 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331114254.php b/.history/routes/web_20260331114254.php deleted file mode 100644 index 661f84c..0000000 --- a/.history/routes/web_20260331114254.php +++ /dev/null @@ -1,98 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331114255.php b/.history/routes/web_20260331114255.php deleted file mode 100644 index cae4d39..0000000 --- a/.history/routes/web_20260331114255.php +++ /dev/null @@ -1,99 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331123859.php b/.history/routes/web_20260331123859.php deleted file mode 100644 index 2b1e33f..0000000 --- a/.history/routes/web_20260331123859.php +++ /dev/null @@ -1,101 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331154447.php b/.history/routes/web_20260331154447.php deleted file mode 100644 index 08771c0..0000000 --- a/.history/routes/web_20260331154447.php +++ /dev/null @@ -1,103 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331171822.php b/.history/routes/web_20260331171822.php deleted file mode 100644 index b151fb7..0000000 --- a/.history/routes/web_20260331171822.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331172636.php b/.history/routes/web_20260331172636.php deleted file mode 100644 index e5f16af..0000000 --- a/.history/routes/web_20260331172636.php +++ /dev/null @@ -1,104 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/user/rumah/update/{id}', [UserController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331172703.php b/.history/routes/web_20260331172703.php deleted file mode 100644 index 7b4a90e..0000000 --- a/.history/routes/web_20260331172703.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/user/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173014.php b/.history/routes/web_20260331173014.php deleted file mode 100644 index 5a52956..0000000 --- a/.history/routes/web_20260331173014.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('user.rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173203.php b/.history/routes/web_20260331173203.php deleted file mode 100644 index 4957c19..0000000 --- a/.history/routes/web_20260331173203.php +++ /dev/null @@ -1,108 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - RRoute::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - -Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - -Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - -Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('user.rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173207.php b/.history/routes/web_20260331173207.php deleted file mode 100644 index c648898..0000000 --- a/.history/routes/web_20260331173207.php +++ /dev/null @@ -1,108 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - -Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - -Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - -Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('user.rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173212.php b/.history/routes/web_20260331173212.php deleted file mode 100644 index 11565b0..0000000 --- a/.history/routes/web_20260331173212.php +++ /dev/null @@ -1,108 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('user.rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173601.php b/.history/routes/web_20260331173601.php deleted file mode 100644 index 5a52956..0000000 --- a/.history/routes/web_20260331173601.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('user.rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173602.php b/.history/routes/web_20260331173602.php deleted file mode 100644 index 7b4a90e..0000000 --- a/.history/routes/web_20260331173602.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/user/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173603.php b/.history/routes/web_20260331173603.php deleted file mode 100644 index e5f16af..0000000 --- a/.history/routes/web_20260331173603.php +++ /dev/null @@ -1,104 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/user/rumah/update/{id}', [UserController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173606.php b/.history/routes/web_20260331173606.php deleted file mode 100644 index 08771c0..0000000 --- a/.history/routes/web_20260331173606.php +++ /dev/null @@ -1,103 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173608.php b/.history/routes/web_20260331173608.php deleted file mode 100644 index b151fb7..0000000 --- a/.history/routes/web_20260331173608.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173610.php b/.history/routes/web_20260331173610.php deleted file mode 100644 index e5f16af..0000000 --- a/.history/routes/web_20260331173610.php +++ /dev/null @@ -1,104 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/user/rumah/update/{id}', [UserController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173611.php b/.history/routes/web_20260331173611.php deleted file mode 100644 index b151fb7..0000000 --- a/.history/routes/web_20260331173611.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('rumah.update'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173616.php b/.history/routes/web_20260331173616.php deleted file mode 100644 index 08771c0..0000000 --- a/.history/routes/web_20260331173616.php +++ /dev/null @@ -1,103 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173621.php b/.history/routes/web_20260331173621.php deleted file mode 100644 index 6f4caa9..0000000 --- a/.history/routes/web_20260331173621.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331173622.php b/.history/routes/web_20260331173622.php deleted file mode 100644 index a3f2878..0000000 --- a/.history/routes/web_20260331173622.php +++ /dev/null @@ -1,106 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('rumah.update'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331174333.php b/.history/routes/web_20260331174333.php deleted file mode 100644 index 4d12027..0000000 --- a/.history/routes/web_20260331174333.php +++ /dev/null @@ -1,106 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331174929.php b/.history/routes/web_20260331174929.php deleted file mode 100644 index dd3dd05..0000000 --- a/.history/routes/web_20260331174929.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331174930.php b/.history/routes/web_20260331174930.php deleted file mode 100644 index 61db11d..0000000 --- a/.history/routes/web_20260331174930.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331174936.php b/.history/routes/web_20260331174936.php deleted file mode 100644 index f0275c6..0000000 --- a/.history/routes/web_20260331174936.php +++ /dev/null @@ -1,108 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331174938.php b/.history/routes/web_20260331174938.php deleted file mode 100644 index 61db11d..0000000 --- a/.history/routes/web_20260331174938.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah'])->name('rumah.update'); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331175056.php b/.history/routes/web_20260331175056.php deleted file mode 100644 index 519905d..0000000 --- a/.history/routes/web_20260331175056.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331175058.php b/.history/routes/web_20260331175058.php deleted file mode 100644 index edd51b3..0000000 --- a/.history/routes/web_20260331175058.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331175112.php b/.history/routes/web_20260331175112.php deleted file mode 100644 index 714befa..0000000 --- a/.history/routes/web_20260331175112.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - // Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331175113.php b/.history/routes/web_20260331175113.php deleted file mode 100644 index edd51b3..0000000 --- a/.history/routes/web_20260331175113.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331175116.php b/.history/routes/web_20260331175116.php deleted file mode 100644 index 6af6229..0000000 --- a/.history/routes/web_20260331175116.php +++ /dev/null @@ -1,105 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331175121.php b/.history/routes/web_20260331175121.php deleted file mode 100644 index 85fc285..0000000 --- a/.history/routes/web_20260331175121.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235916.php b/.history/routes/web_20260331235916.php deleted file mode 100644 index 3a81cca..0000000 --- a/.history/routes/web_20260331235916.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235918.php b/.history/routes/web_20260331235918.php deleted file mode 100644 index 85fc285..0000000 --- a/.history/routes/web_20260331235918.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235920.php b/.history/routes/web_20260331235920.php deleted file mode 100644 index 3a81cca..0000000 --- a/.history/routes/web_20260331235920.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235921.php b/.history/routes/web_20260331235921.php deleted file mode 100644 index 85fc285..0000000 --- a/.history/routes/web_20260331235921.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [UserController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235922.php b/.history/routes/web_20260331235922.php deleted file mode 100644 index 3a81cca..0000000 --- a/.history/routes/web_20260331235922.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235925.php b/.history/routes/web_20260331235925.php deleted file mode 100644 index a7ee83b..0000000 --- a/.history/routes/web_20260331235925.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235926.php b/.history/routes/web_20260331235926.php deleted file mode 100644 index 3a81cca..0000000 --- a/.history/routes/web_20260331235926.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260331235928.php b/.history/routes/web_20260331235928.php deleted file mode 100644 index c49be01..0000000 --- a/.history/routes/web_20260331235928.php +++ /dev/null @@ -1,107 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER (USER) -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // PENGHUNI - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - Route::resource('penghuni', PenghuniController::class); - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah'])->name('rumah.edit'); - Route::put('/rumah/{id}', [PenghuniController::class, 'updateRumah']); - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah'])->name('rumah.destroy'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - // IURAN - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // LAYANAN - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan'])->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260401000230.php b/.history/routes/web_20260401000230.php deleted file mode 100644 index 15c0073..0000000 --- a/.history/routes/web_20260401000230.php +++ /dev/null @@ -1,128 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); -}); diff --git a/.history/routes/web_20260401105604.php b/.history/routes/web_20260401105604.php deleted file mode 100644 index d4de038..0000000 --- a/.history/routes/web_20260401105604.php +++ /dev/null @@ -1,140 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran -Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - -// Status pembayaran -Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - -// Status pengaduan -Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401105610.php b/.history/routes/web_20260401105610.php deleted file mode 100644 index 64c67ef..0000000 --- a/.history/routes/web_20260401105610.php +++ /dev/null @@ -1,140 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401113248.php b/.history/routes/web_20260401113248.php deleted file mode 100644 index d4de038..0000000 --- a/.history/routes/web_20260401113248.php +++ /dev/null @@ -1,140 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran -Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - -// Status pembayaran -Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - -// Status pengaduan -Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401113250.php b/.history/routes/web_20260401113250.php deleted file mode 100644 index 64c67ef..0000000 --- a/.history/routes/web_20260401113250.php +++ /dev/null @@ -1,140 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140634.php b/.history/routes/web_20260401140634.php deleted file mode 100644 index 9bb95ce..0000000 --- a/.history/routes/web_20260401140634.php +++ /dev/null @@ -1,142 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140639.php b/.history/routes/web_20260401140639.php deleted file mode 100644 index 1667c77..0000000 --- a/.history/routes/web_20260401140639.php +++ /dev/null @@ -1,142 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informsi - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140640.php b/.history/routes/web_20260401140640.php deleted file mode 100644 index 1420191..0000000 --- a/.history/routes/web_20260401140640.php +++ /dev/null @@ -1,142 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informs - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140641.php b/.history/routes/web_20260401140641.php deleted file mode 100644 index 28f8378..0000000 --- a/.history/routes/web_20260401140641.php +++ /dev/null @@ -1,142 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //inform - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140644.php b/.history/routes/web_20260401140644.php deleted file mode 100644 index 1564ce1..0000000 --- a/.history/routes/web_20260401140644.php +++ /dev/null @@ -1,145 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informasi - use App\Http\Controllers\Admin\UserController as AdminUserController; - -Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140651.php b/.history/routes/web_20260401140651.php deleted file mode 100644 index ca7c647..0000000 --- a/.history/routes/web_20260401140651.php +++ /dev/null @@ -1,145 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informasi - use App\Http\Controllers\Admin\UserController as AdminUserController; - - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140657.php b/.history/routes/web_20260401140657.php deleted file mode 100644 index ce8f1ff..0000000 --- a/.history/routes/web_20260401140657.php +++ /dev/null @@ -1,144 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informasi - - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140700.php b/.history/routes/web_20260401140700.php deleted file mode 100644 index b5d8664..0000000 --- a/.history/routes/web_20260401140700.php +++ /dev/null @@ -1,143 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informasi - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140707.php b/.history/routes/web_20260401140707.php deleted file mode 100644 index 46c06f7..0000000 --- a/.history/routes/web_20260401140707.php +++ /dev/null @@ -1,144 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //informasi - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140952.php b/.history/routes/web_20260401140952.php deleted file mode 100644 index 8122c59..0000000 --- a/.history/routes/web_20260401140952.php +++ /dev/null @@ -1,144 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401140955.php b/.history/routes/web_20260401140955.php deleted file mode 100644 index f5c374c..0000000 --- a/.history/routes/web_20260401140955.php +++ /dev/null @@ -1,153 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI -Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// LAPORAN -Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); -Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141001.php b/.history/routes/web_20260401141001.php deleted file mode 100644 index 8370041..0000000 --- a/.history/routes/web_20260401141001.php +++ /dev/null @@ -1,153 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141011.php b/.history/routes/web_20260401141011.php deleted file mode 100644 index cef0038..0000000 --- a/.history/routes/web_20260401141011.php +++ /dev/null @@ -1,154 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141012.php b/.history/routes/web_20260401141012.php deleted file mode 100644 index cef0038..0000000 --- a/.history/routes/web_20260401141012.php +++ /dev/null @@ -1,154 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141014.php b/.history/routes/web_20260401141014.php deleted file mode 100644 index b0bdd46..0000000 --- a/.history/routes/web_20260401141014.php +++ /dev/null @@ -1,154 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141016.php b/.history/routes/web_20260401141016.php deleted file mode 100644 index 30b4dce..0000000 --- a/.history/routes/web_20260401141016.php +++ /dev/null @@ -1,155 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141627.php b/.history/routes/web_20260401141627.php deleted file mode 100644 index badbb77..0000000 --- a/.history/routes/web_20260401141627.php +++ /dev/null @@ -1,155 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('adinformasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141629.php b/.history/routes/web_20260401141629.php deleted file mode 100644 index f4ce571..0000000 --- a/.history/routes/web_20260401141629.php +++ /dev/null @@ -1,155 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('admin.informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141644.php b/.history/routes/web_20260401141644.php deleted file mode 100644 index 8dcc254..0000000 --- a/.history/routes/web_20260401141644.php +++ /dev/null @@ -1,155 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('.informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401141649.php b/.history/routes/web_20260401141649.php deleted file mode 100644 index 30b4dce..0000000 --- a/.history/routes/web_20260401141649.php +++ /dev/null @@ -1,155 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401142638.php b/.history/routes/web_20260401142638.php deleted file mode 100644 index 1f223bd..0000000 --- a/.history/routes/web_20260401142638.php +++ /dev/null @@ -1,159 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401144037.php b/.history/routes/web_20260401144037.php deleted file mode 100644 index 853fee7..0000000 --- a/.history/routes/web_20260401144037.php +++ /dev/null @@ -1,161 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [UserController::class, 'edit'])->name('admin.user.edit'); -Route::put('/admin/user/update/{id}', [UserController::class, 'update'])->name('admin.user.update'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401144040.php b/.history/routes/web_20260401144040.php deleted file mode 100644 index 4df5519..0000000 --- a/.history/routes/web_20260401144040.php +++ /dev/null @@ -1,161 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [UserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [UserController::class, 'update'])->name('admin.user.update'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401144615.php b/.history/routes/web_20260401144615.php deleted file mode 100644 index 6f49b54..0000000 --- a/.history/routes/web_20260401144615.php +++ /dev/null @@ -1,161 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); -Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401144617.php b/.history/routes/web_20260401144617.php deleted file mode 100644 index 4df5519..0000000 --- a/.history/routes/web_20260401144617.php +++ /dev/null @@ -1,161 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [UserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [UserController::class, 'update'])->name('admin.user.update'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401144619.php b/.history/routes/web_20260401144619.php deleted file mode 100644 index 6f49b54..0000000 --- a/.history/routes/web_20260401144619.php +++ /dev/null @@ -1,161 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); -Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401144621.php b/.history/routes/web_20260401144621.php deleted file mode 100644 index 16ffd5d..0000000 --- a/.history/routes/web_20260401144621.php +++ /dev/null @@ -1,161 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401145414.php b/.history/routes/web_20260401145414.php deleted file mode 100644 index 923d853..0000000 --- a/.history/routes/web_20260401145414.php +++ /dev/null @@ -1,162 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [UserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401145728.php b/.history/routes/web_20260401145728.php deleted file mode 100644 index 0ad967e..0000000 --- a/.history/routes/web_20260401145728.php +++ /dev/null @@ -1,162 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); -}); diff --git a/.history/routes/web_20260401155125.php b/.history/routes/web_20260401155125.php deleted file mode 100644 index d0b6eba..0000000 --- a/.history/routes/web_20260401155125.php +++ /dev/null @@ -1,164 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - -}); diff --git a/.history/routes/web_20260401155126.php b/.history/routes/web_20260401155126.php deleted file mode 100644 index 7e94e01..0000000 --- a/.history/routes/web_20260401155126.php +++ /dev/null @@ -1,164 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - -}); diff --git a/.history/routes/web_20260401155130.php b/.history/routes/web_20260401155130.php deleted file mode 100644 index eae901b..0000000 --- a/.history/routes/web_20260401155130.php +++ /dev/null @@ -1,165 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401155138.php b/.history/routes/web_20260401155138.php deleted file mode 100644 index 1bd6bed..0000000 --- a/.history/routes/web_20260401155138.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401155140.php b/.history/routes/web_20260401155140.php deleted file mode 100644 index 2e67c2f..0000000 --- a/.history/routes/web_20260401155140.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233028.php b/.history/routes/web_20260401233028.php deleted file mode 100644 index aaae441..0000000 --- a/.history/routes/web_20260401233028.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233049.php b/.history/routes/web_20260401233049.php deleted file mode 100644 index c6939f0..0000000 --- a/.history/routes/web_20260401233049.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233050.php b/.history/routes/web_20260401233050.php deleted file mode 100644 index 40ef4e8..0000000 --- a/.history/routes/web_20260401233050.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233052.php b/.history/routes/web_20260401233052.php deleted file mode 100644 index 9234898..0000000 --- a/.history/routes/web_20260401233052.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/iuran/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/iuran/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/iuran/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233140.php b/.history/routes/web_20260401233140.php deleted file mode 100644 index b868079..0000000 --- a/.history/routes/web_20260401233140.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); // 🔥 FIX -}); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233144.php b/.history/routes/web_20260401233144.php deleted file mode 100644 index d058c77..0000000 --- a/.history/routes/web_20260401233144.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); // 🔥 FIX -}); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233147.php b/.history/routes/web_20260401233147.php deleted file mode 100644 index b868079..0000000 --- a/.history/routes/web_20260401233147.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); // 🔥 FIX -}); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233150.php b/.history/routes/web_20260401233150.php deleted file mode 100644 index 70adf1f..0000000 --- a/.history/routes/web_20260401233150.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/delete/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); // 🔥 FIX - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401233412.php b/.history/routes/web_20260401233412.php deleted file mode 100644 index 44d4b89..0000000 --- a/.history/routes/web_20260401233412.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260401235702.php b/.history/routes/web_20260401235702.php deleted file mode 100644 index d12ef5a..0000000 --- a/.history/routes/web_20260401235702.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408160841.php b/.history/routes/web_20260408160841.php deleted file mode 100644 index c1cfa40..0000000 --- a/.history/routes/web_20260408160841.php +++ /dev/null @@ -1,166 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408160856.php b/.history/routes/web_20260408160856.php deleted file mode 100644 index d12ef5a..0000000 --- a/.history/routes/web_20260408160856.php +++ /dev/null @@ -1,168 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408160907.php b/.history/routes/web_20260408160907.php deleted file mode 100644 index 9b731ca..0000000 --- a/.history/routes/web_20260408160907.php +++ /dev/null @@ -1,173 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408160952.php b/.history/routes/web_20260408160952.php deleted file mode 100644 index 7c865b3..0000000 --- a/.history/routes/web_20260408160952.php +++ /dev/null @@ -1,174 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408162712.php b/.history/routes/web_20260408162712.php deleted file mode 100644 index df9e7d1..0000000 --- a/.history/routes/web_20260408162712.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::get('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408164023.php b/.history/routes/web_20260408164023.php deleted file mode 100644 index a8b222b..0000000 --- a/.history/routes/web_20260408164023.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408164027.php b/.history/routes/web_20260408164027.php deleted file mode 100644 index 2e2271d..0000000 --- a/.history/routes/web_20260408164027.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408164935.php b/.history/routes/web_20260408164935.php deleted file mode 100644 index 3528594..0000000 --- a/.history/routes/web_20260408164935.php +++ /dev/null @@ -1,176 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - Route::get('/user/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408164947.php b/.history/routes/web_20260408164947.php deleted file mode 100644 index 2e2271d..0000000 --- a/.history/routes/web_20260408164947.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165022.php b/.history/routes/web_20260408165022.php deleted file mode 100644 index 3226e56..0000000 --- a/.history/routes/web_20260408165022.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/user/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165034.php b/.history/routes/web_20260408165034.php deleted file mode 100644 index 2bb8612..0000000 --- a/.history/routes/web_20260408165034.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/user/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('user/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165038.php b/.history/routes/web_20260408165038.php deleted file mode 100644 index ee397dc..0000000 --- a/.history/routes/web_20260408165038.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/user/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('user/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('user/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165042.php b/.history/routes/web_20260408165042.php deleted file mode 100644 index b8d1ae3..0000000 --- a/.history/routes/web_20260408165042.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/user/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('user/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('user/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('user/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165708.php b/.history/routes/web_20260408165708.php deleted file mode 100644 index febd35f..0000000 --- a/.history/routes/web_20260408165708.php +++ /dev/null @@ -1,179 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165710.php b/.history/routes/web_20260408165710.php deleted file mode 100644 index f94337f..0000000 --- a/.history/routes/web_20260408165710.php +++ /dev/null @@ -1,179 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165725.php b/.history/routes/web_20260408165725.php deleted file mode 100644 index b8d1ae3..0000000 --- a/.history/routes/web_20260408165725.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/user/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('user/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('user/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('user/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165732.php b/.history/routes/web_20260408165732.php deleted file mode 100644 index a8b222b..0000000 --- a/.history/routes/web_20260408165732.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165734.php b/.history/routes/web_20260408165734.php deleted file mode 100644 index df9e7d1..0000000 --- a/.history/routes/web_20260408165734.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::get('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165741.php b/.history/routes/web_20260408165741.php deleted file mode 100644 index a8b222b..0000000 --- a/.history/routes/web_20260408165741.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165742.php b/.history/routes/web_20260408165742.php deleted file mode 100644 index df9e7d1..0000000 --- a/.history/routes/web_20260408165742.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::get('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165748.php b/.history/routes/web_20260408165748.php deleted file mode 100644 index df9e7d1..0000000 --- a/.history/routes/web_20260408165748.php +++ /dev/null @@ -1,175 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::get('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran'); - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165820.php b/.history/routes/web_20260408165820.php deleted file mode 100644 index 4b0da63..0000000 --- a/.history/routes/web_20260408165820.php +++ /dev/null @@ -1,179 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::get('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408165823.php b/.history/routes/web_20260408165823.php deleted file mode 100644 index dcb530f..0000000 --- a/.history/routes/web_20260408165823.php +++ /dev/null @@ -1,179 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::get('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408171018.php b/.history/routes/web_20260408171018.php deleted file mode 100644 index 2a67e81..0000000 --- a/.history/routes/web_20260408171018.php +++ /dev/null @@ -1,179 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408171708.php b/.history/routes/web_20260408171708.php deleted file mode 100644 index ab9efc0..0000000 --- a/.history/routes/web_20260408171708.php +++ /dev/null @@ -1,179 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); diff --git a/.history/routes/web_20260408182917.php b/.history/routes/web_20260408182917.php deleted file mode 100644 index 45d2bb9..0000000 --- a/.history/routes/web_20260408182917.php +++ /dev/null @@ -1,189 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); diff --git a/.history/routes/web_20260408184452.php b/.history/routes/web_20260408184452.php deleted file mode 100644 index 2964559..0000000 --- a/.history/routes/web_20260408184452.php +++ /dev/null @@ -1,191 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve']) - ->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); diff --git a/.history/routes/web_20260408184458.php b/.history/routes/web_20260408184458.php deleted file mode 100644 index 45d2bb9..0000000 --- a/.history/routes/web_20260408184458.php +++ /dev/null @@ -1,189 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); diff --git a/.history/routes/web_20260408185819.php b/.history/routes/web_20260408185819.php deleted file mode 100644 index bf4c0a1..0000000 --- a/.history/routes/web_20260408185819.php +++ /dev/null @@ -1,191 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260408190308.php b/.history/routes/web_20260408190308.php deleted file mode 100644 index f863d44..0000000 --- a/.history/routes/web_20260408190308.php +++ /dev/null @@ -1,199 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - // 🔥 SIMPAN BUKTI - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260408190318.php b/.history/routes/web_20260408190318.php deleted file mode 100644 index 38b7e00..0000000 --- a/.history/routes/web_20260408190318.php +++ /dev/null @@ -1,199 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - // 🔥 SIMPAN BUKTI - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260408191233.php b/.history/routes/web_20260408191233.php deleted file mode 100644 index 988607f..0000000 --- a/.history/routes/web_20260408191233.php +++ /dev/null @@ -1,200 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260409083139.php b/.history/routes/web_20260409083139.php deleted file mode 100644 index b3b2fac..0000000 --- a/.history/routes/web_20260409083139.php +++ /dev/null @@ -1,203 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260409085728.php b/.history/routes/web_20260409085728.php deleted file mode 100644 index 5b61853..0000000 --- a/.history/routes/web_20260409085728.php +++ /dev/null @@ -1,203 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260409114110.php b/.history/routes/web_20260409114110.php deleted file mode 100644 index f033982..0000000 --- a/.history/routes/web_20260409114110.php +++ /dev/null @@ -1,202 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260409114112.php b/.history/routes/web_20260409114112.php deleted file mode 100644 index 79cc59e..0000000 --- a/.history/routes/web_20260409114112.php +++ /dev/null @@ -1,203 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - Route::get('/pengaduan', [UserController::class, 'pengaduan'])->name('user.pengaduan'); - Route::post('/pengaduan/store', [UserController::class, 'storePengaduan']) - ->name('user.pengaduan.store'); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410133459.php b/.history/routes/web_20260410133459.php deleted file mode 100644 index 5ca0765..0000000 --- a/.history/routes/web_20260410133459.php +++ /dev/null @@ -1,214 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= -// LAYANAN (USER) -// ========================= -Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410133507.php b/.history/routes/web_20260410133507.php deleted file mode 100644 index 77cc937..0000000 --- a/.history/routes/web_20260410133507.php +++ /dev/null @@ -1,214 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410133518.php b/.history/routes/web_20260410133518.php deleted file mode 100644 index 093ebde..0000000 --- a/.history/routes/web_20260410133518.php +++ /dev/null @@ -1,214 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410135527.php b/.history/routes/web_20260410135527.php deleted file mode 100644 index 737e969..0000000 --- a/.history/routes/web_20260410135527.php +++ /dev/null @@ -1,225 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - public function tanggapi(Request $request, $id) -{ - // VALIDASI - $request->validate([ - 'tanggapan_admin' => 'required|string', - 'status' => 'required|in:diproses,selesai' - ]); - - // AMBIL DATA - $layanan = Layanan::find($id); - - if (!$layanan) { - return back()->with('error', 'Data tidak ditemukan'); - } - - // UPDATE DATA - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = $request->status; - $layanan->save(); - - return back()->with('success', 'Tanggapan berhasil diberikan'); -} - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410135529.php b/.history/routes/web_20260410135529.php deleted file mode 100644 index 093ebde..0000000 --- a/.history/routes/web_20260410135529.php +++ /dev/null @@ -1,214 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410135544.php b/.history/routes/web_20260410135544.php deleted file mode 100644 index 8ffee46..0000000 --- a/.history/routes/web_20260410135544.php +++ /dev/null @@ -1,214 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260410135546.php b/.history/routes/web_20260410135546.php deleted file mode 100644 index 9af0cb5..0000000 --- a/.history/routes/web_20260410135546.php +++ /dev/null @@ -1,214 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413214555.php b/.history/routes/web_20260413214555.php deleted file mode 100644 index c54cd26..0000000 --- a/.history/routes/web_20260413214555.php +++ /dev/null @@ -1,216 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230024.php b/.history/routes/web_20260413230024.php deleted file mode 100644 index e070d12..0000000 --- a/.history/routes/web_20260413230024.php +++ /dev/null @@ -1,215 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::post('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230025.php b/.history/routes/web_20260413230025.php deleted file mode 100644 index e070d12..0000000 --- a/.history/routes/web_20260413230025.php +++ /dev/null @@ -1,215 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::post('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230026.php b/.history/routes/web_20260413230026.php deleted file mode 100644 index e070d12..0000000 --- a/.history/routes/web_20260413230026.php +++ /dev/null @@ -1,215 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::post('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230029.php b/.history/routes/web_20260413230029.php deleted file mode 100644 index eb01aef..0000000 --- a/.history/routes/web_20260413230029.php +++ /dev/null @@ -1,215 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::post('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230157.php b/.history/routes/web_20260413230157.php deleted file mode 100644 index 6ef5b11..0000000 --- a/.history/routes/web_20260413230157.php +++ /dev/null @@ -1,216 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::put('/admin/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230514.php b/.history/routes/web_20260413230514.php deleted file mode 100644 index 8b29b9d..0000000 --- a/.history/routes/web_20260413230514.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - -}); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230518.php b/.history/routes/web_20260413230518.php deleted file mode 100644 index 723eb4a..0000000 --- a/.history/routes/web_20260413230518.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230710.php b/.history/routes/web_20260413230710.php deleted file mode 100644 index 9de40e1..0000000 --- a/.history/routes/web_20260413230710.php +++ /dev/null @@ -1,218 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230722.php b/.history/routes/web_20260413230722.php deleted file mode 100644 index 723eb4a..0000000 --- a/.history/routes/web_20260413230722.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230741.php b/.history/routes/web_20260413230741.php deleted file mode 100644 index 27db1ef..0000000 --- a/.history/routes/web_20260413230741.php +++ /dev/null @@ -1,217 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230743.php b/.history/routes/web_20260413230743.php deleted file mode 100644 index 723eb4a..0000000 --- a/.history/routes/web_20260413230743.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230747.php b/.history/routes/web_20260413230747.php deleted file mode 100644 index 11e582d..0000000 --- a/.history/routes/web_20260413230747.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230849.php b/.history/routes/web_20260413230849.php deleted file mode 100644 index b81cec4..0000000 --- a/.history/routes/web_20260413230849.php +++ /dev/null @@ -1,219 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/admin/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413230852.php b/.history/routes/web_20260413230852.php deleted file mode 100644 index d08bb26..0000000 --- a/.history/routes/web_20260413230852.php +++ /dev/null @@ -1,219 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/admin/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413231049.php b/.history/routes/web_20260413231049.php deleted file mode 100644 index 501b16a..0000000 --- a/.history/routes/web_20260413231049.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413231612.php b/.history/routes/web_20260413231612.php deleted file mode 100644 index 501b16a..0000000 --- a/.history/routes/web_20260413231612.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413231613.php b/.history/routes/web_20260413231613.php deleted file mode 100644 index f1103cc..0000000 --- a/.history/routes/web_20260413231613.php +++ /dev/null @@ -1,220 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/user/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/user/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/user/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - Route::post('/user/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - // 🔥 USER UPDATE RUMAH (OPSIONAL) - Route::put('/user/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - // Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload'])->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload'])->name('user.iuran.storeUpload'); - - Route::get('/iuran/status', [UserIuranController::class, 'status'])->name('user.iuran.status'); - - // 🔥 FORM UPLOAD - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - -}); - - // ========================= - // LAYANAN (USER) - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); -}); - - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - // Upload pembayaran - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - // Status pembayaran - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - // Status pengaduan - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - -Route::prefix('user')->middleware('auth')->group(function () { - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/user/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); -}); - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - - Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260413232943.php b/.history/routes/web_20260413232943.php deleted file mode 100644 index f0e3092..0000000 --- a/.history/routes/web_20260413232943.php +++ /dev/null @@ -1,225 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [PenghuniController::class, 'storeUser']) - ->name('penghuni.store.user'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414000303.php b/.history/routes/web_20260414000303.php deleted file mode 100644 index 441051a..0000000 --- a/.history/routes/web_20260414000303.php +++ /dev/null @@ -1,225 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/{id}/tanggapi', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414000656.php b/.history/routes/web_20260414000656.php deleted file mode 100644 index ee1aece..0000000 --- a/.history/routes/web_20260414000656.php +++ /dev/null @@ -1,225 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414004643.php b/.history/routes/web_20260414004643.php deleted file mode 100644 index 8e29aa8..0000000 --- a/.history/routes/web_20260414004643.php +++ /dev/null @@ -1,225 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414004644.php b/.history/routes/web_20260414004644.php deleted file mode 100644 index 8e29aa8..0000000 --- a/.history/routes/web_20260414004644.php +++ /dev/null @@ -1,225 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414143646.php b/.history/routes/web_20260414143646.php deleted file mode 100644 index b05e601..0000000 --- a/.history/routes/web_20260414143646.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/pengaduan/delete/{id}', [UserPengaduanController::class, 'destroy']) - ->name('user.pengaduan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414143651.php b/.history/routes/web_20260414143651.php deleted file mode 100644 index 137b468..0000000 --- a/.history/routes/web_20260414143651.php +++ /dev/null @@ -1,227 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414143658.php b/.history/routes/web_20260414143658.php deleted file mode 100644 index b05e601..0000000 --- a/.history/routes/web_20260414143658.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/pengaduan/delete/{id}', [UserPengaduanController::class, 'destroy']) - ->name('user.pengaduan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414143704.php b/.history/routes/web_20260414143704.php deleted file mode 100644 index e61ce5a..0000000 --- a/.history/routes/web_20260414143704.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/pengaduan/delete/{id}', [UserLayananController::class, 'destroy']) - ->name('user.pengaduan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414144053.php b/.history/routes/web_20260414144053.php deleted file mode 100644 index 48afd2f..0000000 --- a/.history/routes/web_20260414144053.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'destroy']) - ->name('user.pengaduan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414144059.php b/.history/routes/web_20260414144059.php deleted file mode 100644 index 5afc87e..0000000 --- a/.history/routes/web_20260414144059.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'destroy']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414144853.php b/.history/routes/web_20260414144853.php deleted file mode 100644 index 38dfa65..0000000 --- a/.history/routes/web_20260414144853.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414144856.php b/.history/routes/web_20260414144856.php deleted file mode 100644 index 4ae5d7a..0000000 --- a/.history/routes/web_20260414144856.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203600.php b/.history/routes/web_20260414203600.php deleted file mode 100644 index 9a84aab..0000000 --- a/.history/routes/web_20260414203600.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - // Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - // Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // Route::get('/test-view', function () { - // return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203609.php b/.history/routes/web_20260414203609.php deleted file mode 100644 index 62cce7c..0000000 --- a/.history/routes/web_20260414203609.php +++ /dev/null @@ -1,230 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - - Route::resource('informasi', InformasiController::class); - // Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - // Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - // Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - // Route::get('/test-view', function () { - // return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203631.php b/.history/routes/web_20260414203631.php deleted file mode 100644 index 4ae5d7a..0000000 --- a/.history/routes/web_20260414203631.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203637.php b/.history/routes/web_20260414203637.php deleted file mode 100644 index 2ed3804..0000000 --- a/.history/routes/web_20260414203637.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203641.php b/.history/routes/web_20260414203641.php deleted file mode 100644 index f6adfce..0000000 --- a/.history/routes/web_20260414203641.php +++ /dev/null @@ -1,297 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - - @extends('layouts.app') - -@section('content') -
- -

Kelola Informasi

- - @if(session('success')) -
{{ session('success') }}
- @endif - - - + Tambah Informasi - - - - - - - - - - - - - - - - @forelse($informasi as $i) - - - - - - - - - - - - - @empty - - - - @endforelse - -
JudulKategoriPentingViewsTanggalAksi
{{ $i->judul }}{{ $i->kategori }} - @if($i->is_penting) - Penting - @else - - - @endif - {{ $i->views }}{{ $i->tanggal }} - Edit - -
- @csrf - @method('DELETE') - - -
-
Belum ada data
- -
-@endsection -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203643.php b/.history/routes/web_20260414203643.php deleted file mode 100644 index cb7b0ab..0000000 --- a/.history/routes/web_20260414203643.php +++ /dev/null @@ -1,230 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - - -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414203646.php b/.history/routes/web_20260414203646.php deleted file mode 100644 index e1bd157..0000000 --- a/.history/routes/web_20260414203646.php +++ /dev/null @@ -1,230 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - - Route::resource('informasi', InformasiController::class); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414204750.php b/.history/routes/web_20260414204750.php deleted file mode 100644 index 903d025..0000000 --- a/.history/routes/web_20260414204750.php +++ /dev/null @@ -1,232 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - - Route::resource('informasi', InformasiController::class); - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414204754.php b/.history/routes/web_20260414204754.php deleted file mode 100644 index 65633d1..0000000 --- a/.history/routes/web_20260414204754.php +++ /dev/null @@ -1,231 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::resource('informasi', InformasiController::class); - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414205752.php b/.history/routes/web_20260414205752.php deleted file mode 100644 index 925a6e3..0000000 --- a/.history/routes/web_20260414205752.php +++ /dev/null @@ -1,232 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::resource('informasi', InformasiController::class); - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - Route::get('/home', [UserController::class, 'index'])->name('user.home'); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220548.php b/.history/routes/web_20260414220548.php deleted file mode 100644 index a43d7d5..0000000 --- a/.history/routes/web_20260414220548.php +++ /dev/null @@ -1,234 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // ======================= -// 🔥 USER INFORMASI -// ======================= -Route::get('/home', [UserController::class, 'index'])->name('user.home'); - -Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220555.php b/.history/routes/web_20260414220555.php deleted file mode 100644 index 16cfd12..0000000 --- a/.history/routes/web_20260414220555.php +++ /dev/null @@ -1,234 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220643.php b/.history/routes/web_20260414220643.php deleted file mode 100644 index 925a6e3..0000000 --- a/.history/routes/web_20260414220643.php +++ /dev/null @@ -1,232 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::resource('informasi', InformasiController::class); - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - Route::get('/home', [UserController::class, 'index'])->name('user.home'); -// Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); -// Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); -// Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - -// Route::get('/test-view', function () { -// return view('admin.informasi.index'); -// }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220652.php b/.history/routes/web_20260414220652.php deleted file mode 100644 index 4ae5d7a..0000000 --- a/.history/routes/web_20260414220652.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220717.php b/.history/routes/web_20260414220717.php deleted file mode 100644 index ed41966..0000000 --- a/.history/routes/web_20260414220717.php +++ /dev/null @@ -1,234 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - // ======================= -// 🔥 USER INFORMASI -// ======================= -Route::get('/home', [UserController::class, 'index'])->name('user.home'); - -Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220720.php b/.history/routes/web_20260414220720.php deleted file mode 100644 index 4ae5d7a..0000000 --- a/.history/routes/web_20260414220720.php +++ /dev/null @@ -1,228 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220742.php b/.history/routes/web_20260414220742.php deleted file mode 100644 index 906c567..0000000 --- a/.history/routes/web_20260414220742.php +++ /dev/null @@ -1,230 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220743.php b/.history/routes/web_20260414220743.php deleted file mode 100644 index dd49366..0000000 --- a/.history/routes/web_20260414220743.php +++ /dev/null @@ -1,236 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= -// 🔥 USER INFORMASI -// ======================= -Route::get('/home', [UserController::class, 'index'])->name('user.home'); - -Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220750.php b/.history/routes/web_20260414220750.php deleted file mode 100644 index 9ff9a07..0000000 --- a/.history/routes/web_20260414220750.php +++ /dev/null @@ -1,236 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - Route::get('/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220835.php b/.history/routes/web_20260414220835.php deleted file mode 100644 index 81b5ef3..0000000 --- a/.history/routes/web_20260414220835.php +++ /dev/null @@ -1,246 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= -// 🔥 ADMIN INFORMASI -// ======================= -Route::middleware(['auth', 'role:admin'])->group(function () { - - Route::get('/admin/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/admin/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/admin/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - Route::get('/admin/informasi/edit/{id}', [InformasiController::class, 'edit'])->name('informasi.edit'); - Route::put('/admin/informasi/update/{id}', [InformasiController::class, 'update'])->name('informasi.update'); - Route::delete('/admin/informasi/delete/{id}', [InformasiController::class, 'destroy'])->name('informasi.delete'); - -}); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220840.php b/.history/routes/web_20260414220840.php deleted file mode 100644 index 1252923..0000000 --- a/.history/routes/web_20260414220840.php +++ /dev/null @@ -1,246 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth', 'role:admin'])->group(function () { - - Route::get('/admin/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/admin/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/admin/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - Route::get('/admin/informasi/edit/{id}', [InformasiController::class, 'edit'])->name('informasi.edit'); - Route::put('/admin/informasi/update/{id}', [InformasiController::class, 'update'])->name('informasi.update'); - Route::delete('/admin/informasi/delete/{id}', [InformasiController::class, 'destroy'])->name('informasi.delete'); - - }); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220843.php b/.history/routes/web_20260414220843.php deleted file mode 100644 index 05c13ac..0000000 --- a/.history/routes/web_20260414220843.php +++ /dev/null @@ -1,246 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth', 'role:admin'])->group(function () { - - Route::get('/admin/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/admin/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/admin/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - Route::get('/admin/informasi/edit/{id}', [InformasiController::class, 'edit'])->name('informasi.edit'); - Route::put('/admin/informasi/update/{id}', [InformasiController::class, 'update'])->name('informasi.update'); - Route::delete('/admin/informasi/delete/{id}', [InformasiController::class, 'destroy'])->name('informasi.delete'); - - }); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220936.php b/.history/routes/web_20260414220936.php deleted file mode 100644 index 2dce911..0000000 --- a/.history/routes/web_20260414220936.php +++ /dev/null @@ -1,250 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth', 'role:admin'])->group(function () { - - Route::get('/admin/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/admin/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/admin/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - Route::get('/admin/informasi/edit/{id}', [InformasiController::class, 'edit'])->name('informasi.edit'); - Route::put('/admin/informasi/update/{id}', [InformasiController::class, 'update'])->name('informasi.update'); - Route::delete('/admin/informasi/delete/{id}', [InformasiController::class, 'destroy'])->name('informasi.delete'); - - }); - - Route::prefix('admin')->middleware(['auth','role:admin'])->group(function () { - Route::resource('informasi', InformasiController::class); -}); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414220939.php b/.history/routes/web_20260414220939.php deleted file mode 100644 index cd50f55..0000000 --- a/.history/routes/web_20260414220939.php +++ /dev/null @@ -1,250 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth', 'role:admin'])->group(function () { - - Route::get('/admin/informasi', [InformasiController::class, 'index'])->name('informasi.index'); - Route::get('/admin/informasi/create', [InformasiController::class, 'create'])->name('informasi.create'); - Route::post('/admin/informasi/store', [InformasiController::class, 'store'])->name('informasi.store'); - Route::get('/admin/informasi/edit/{id}', [InformasiController::class, 'edit'])->name('informasi.edit'); - Route::put('/admin/informasi/update/{id}', [InformasiController::class, 'update'])->name('informasi.update'); - Route::delete('/admin/informasi/delete/{id}', [InformasiController::class, 'destroy'])->name('informasi.delete'); - - }); - - Route::prefix('admin')->middleware(['auth','role:admin'])->group(function () { - Route::resource('informasi', InformasiController::class); - }); - - Route::get('/test-view', function () { - return view('admin.informasi.index'); - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414222025.php b/.history/routes/web_20260414222025.php deleted file mode 100644 index f30f79a..0000000 --- a/.history/routes/web_20260414222025.php +++ /dev/null @@ -1,238 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - -}); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414222028.php b/.history/routes/web_20260414222028.php deleted file mode 100644 index 44dcf10..0000000 --- a/.history/routes/web_20260414222028.php +++ /dev/null @@ -1,238 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414222030.php b/.history/routes/web_20260414222030.php deleted file mode 100644 index f2b9d19..0000000 --- a/.history/routes/web_20260414222030.php +++ /dev/null @@ -1,238 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414222130.php b/.history/routes/web_20260414222130.php deleted file mode 100644 index 5840a12..0000000 --- a/.history/routes/web_20260414222130.php +++ /dev/null @@ -1,238 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - // Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - // ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260414222136.php b/.history/routes/web_20260414222136.php deleted file mode 100644 index f2b9d19..0000000 --- a/.history/routes/web_20260414222136.php +++ /dev/null @@ -1,238 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416102946.php b/.history/routes/web_20260416102946.php deleted file mode 100644 index fb0abf7..0000000 --- a/.history/routes/web_20260416102946.php +++ /dev/null @@ -1,248 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - // ================= RT ================= -Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); -}); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416102950.php b/.history/routes/web_20260416102950.php deleted file mode 100644 index ead9fbf..0000000 --- a/.history/routes/web_20260416102950.php +++ /dev/null @@ -1,248 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416104152.php b/.history/routes/web_20260416104152.php deleted file mode 100644 index 77f3e7b..0000000 --- a/.history/routes/web_20260416104152.php +++ /dev/null @@ -1,251 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); -Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin'])->name('iuran.approve.admin'); - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416104159.php b/.history/routes/web_20260416104159.php deleted file mode 100644 index b689fd3..0000000 --- a/.history/routes/web_20260416104159.php +++ /dev/null @@ -1,251 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin'])->name('iuran.approve.admin'); - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416104204.php b/.history/routes/web_20260416104204.php deleted file mode 100644 index 81057c3..0000000 --- a/.history/routes/web_20260416104204.php +++ /dev/null @@ -1,250 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416104621.php b/.history/routes/web_20260416104621.php deleted file mode 100644 index 1d81ed7..0000000 --- a/.history/routes/web_20260416104621.php +++ /dev/null @@ -1,257 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416104625.php b/.history/routes/web_20260416104625.php deleted file mode 100644 index 6dfd989..0000000 --- a/.history/routes/web_20260416104625.php +++ /dev/null @@ -1,257 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416121315.php b/.history/routes/web_20260416121315.php deleted file mode 100644 index e7934e8..0000000 --- a/.history/routes/web_20260416121315.php +++ /dev/null @@ -1,260 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416165914.php b/.history/routes/web_20260416165914.php deleted file mode 100644 index d8a3e1a..0000000 --- a/.history/routes/web_20260416165914.php +++ /dev/null @@ -1,261 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416165916.php b/.history/routes/web_20260416165916.php deleted file mode 100644 index 1855029..0000000 --- a/.history/routes/web_20260416165916.php +++ /dev/null @@ -1,262 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416194640.php b/.history/routes/web_20260416194640.php deleted file mode 100644 index 2c4ecbf..0000000 --- a/.history/routes/web_20260416194640.php +++ /dev/null @@ -1,267 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - Route::get('/pengaduan', ...); - Route::get('/iuran', ...); -}); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416194813.php b/.history/routes/web_20260416194813.php deleted file mode 100644 index 881ec35..0000000 --- a/.history/routes/web_20260416194813.php +++ /dev/null @@ -1,272 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - -}); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260416194817.php b/.history/routes/web_20260416194817.php deleted file mode 100644 index 3d0cdd9..0000000 --- a/.history/routes/web_20260416194817.php +++ /dev/null @@ -1,272 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417145815.php b/.history/routes/web_20260417145815.php deleted file mode 100644 index 5eeec3f..0000000 --- a/.history/routes/web_20260417145815.php +++ /dev/null @@ -1,282 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -// LUPA PASSWORD -Route::get('/lupa-password', [AuthController::class, 'lupaPassword'])->name('lupa.password'); -Route::post('/kirim-otp', [AuthController::class, 'kirimOtp'])->name('kirim.otp'); - -Route::get('/verifikasi-otp', [AuthController::class, 'formOtp'])->name('form.otp'); -Route::post('/verifikasi-otp', [AuthController::class, 'verifikasiOtp'])->name('verifikasi.otp'); - -Route::get('/reset-password', [AuthController::class, 'formReset'])->name('form.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('reset.password'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417150818.php b/.history/routes/web_20260417150818.php deleted file mode 100644 index 5006805..0000000 --- a/.history/routes/web_20260417150818.php +++ /dev/null @@ -1,274 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417150820.php b/.history/routes/web_20260417150820.php deleted file mode 100644 index 5447895..0000000 --- a/.history/routes/web_20260417150820.php +++ /dev/null @@ -1,281 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417154930.php b/.history/routes/web_20260417154930.php deleted file mode 100644 index 0a7869a..0000000 --- a/.history/routes/web_20260417154930.php +++ /dev/null @@ -1,300 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - - - - OTP Reset Password - - - -

Reset Password

- -

Kode OTP kamu:

- -

{{ $otp }}

- -

Berlaku 5 menit

- - - - - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417154932.php b/.history/routes/web_20260417154932.php deleted file mode 100644 index 0fd12e8..0000000 --- a/.history/routes/web_20260417154932.php +++ /dev/null @@ -1,283 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417154936.php b/.history/routes/web_20260417154936.php deleted file mode 100644 index 4816474..0000000 --- a/.history/routes/web_20260417154936.php +++ /dev/null @@ -1,285 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-email', function () { - return view('emails.otp', ['otp' => 123456]); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417155302.php b/.history/routes/web_20260417155302.php deleted file mode 100644 index 4f6cea4..0000000 --- a/.history/routes/web_20260417155302.php +++ /dev/null @@ -1,285 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-kirim', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'Email terkirim'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417155455.php b/.history/routes/web_20260417155455.php deleted file mode 100644 index ac1d5fa..0000000 --- a/.history/routes/web_20260417155455.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-kirim', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'Email terkirim'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417155604.php b/.history/routes/web_20260417155604.php deleted file mode 100644 index c43e495..0000000 --- a/.history/routes/web_20260417155604.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-kirim', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'Email terkirim'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417155606.php b/.history/routes/web_20260417155606.php deleted file mode 100644 index 4f6cea4..0000000 --- a/.history/routes/web_20260417155606.php +++ /dev/null @@ -1,285 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-kirim', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'Email terkirim'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417155609.php b/.history/routes/web_20260417155609.php deleted file mode 100644 index ac1d5fa..0000000 --- a/.history/routes/web_20260417155609.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-kirim', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'Email terkirim'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417155631.php b/.history/routes/web_20260417155631.php deleted file mode 100644 index ff870c9..0000000 --- a/.history/routes/web_20260417155631.php +++ /dev/null @@ -1,285 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - -Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); -Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - -Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); -Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - -Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); -Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - -Route::get('/test-email', function () { - return view('emails.otp', ['otp' => 123456]); -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417160952.php b/.history/routes/web_20260417160952.php deleted file mode 100644 index b3c6e5c..0000000 --- a/.history/routes/web_20260417160952.php +++ /dev/null @@ -1,285 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-email', function () { - return view('emails.otp', ['otp' => 123456]); - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161539.php b/.history/routes/web_20260417161539.php deleted file mode 100644 index 6baa46f..0000000 --- a/.history/routes/web_20260417161539.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161545.php b/.history/routes/web_20260417161545.php deleted file mode 100644 index 1e20620..0000000 --- a/.history/routes/web_20260417161545.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161548.php b/.history/routes/web_20260417161548.php deleted file mode 100644 index b3c6e5c..0000000 --- a/.history/routes/web_20260417161548.php +++ /dev/null @@ -1,285 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-email', function () { - return view('emails.otp', ['otp' => 123456]); - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161549.php b/.history/routes/web_20260417161549.php deleted file mode 100644 index 6baa46f..0000000 --- a/.history/routes/web_20260417161549.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; -}); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161552.php b/.history/routes/web_20260417161552.php deleted file mode 100644 index 1e20620..0000000 --- a/.history/routes/web_20260417161552.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('emailkamu@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161602.php b/.history/routes/web_20260417161602.php deleted file mode 100644 index 2c97e47..0000000 --- a/.history/routes/web_20260417161602.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('mlnryan05@.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161605.php b/.history/routes/web_20260417161605.php deleted file mode 100644 index 9464d1b..0000000 --- a/.history/routes/web_20260417161605.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('mlnryan05@gmail.com.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417161607.php b/.history/routes/web_20260417161607.php deleted file mode 100644 index 9c3d53a..0000000 --- a/.history/routes/web_20260417161607.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - Route::get('/test-mail', function () { - Mail::to('mlnryan05@gmail.com')->send(new \App\Mail\OtpMail(123456)); - return 'OK'; - }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/.history/routes/web_20260417162349.php b/.history/routes/web_20260417162349.php deleted file mode 100644 index 8759e43..0000000 --- a/.history/routes/web_20260417162349.php +++ /dev/null @@ -1,286 +0,0 @@ -name('login'); -Route::post('/login', [AuthController::class, 'prosesLogin'])->name('login.proses'); - -// REGISTER -Route::get('/register', [AuthController::class, 'register'])->name('register'); -Route::post('/register', [AuthController::class, 'prosesRegister'])->name('register.proses'); - -// LOGOUT -Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); - - Route::get('/forgot-password', [AuthController::class, 'forgotForm'])->name('password.forgot'); - Route::post('/forgot-password', [AuthController::class, 'sendOtp'])->name('password.sendOtp'); - - Route::get('/verify-otp', [AuthController::class, 'otpForm'])->name('password.otp'); - Route::post('/verify-otp', [AuthController::class, 'verifyOtp'])->name('password.verifyOtp'); - - Route::get('/reset-password', [AuthController::class, 'resetForm'])->name('password.reset'); - Route::post('/reset-password', [AuthController::class, 'resetPassword'])->name('password.update'); - - // Route::get('/test-mail', function () { - // Mail::to('mlnryan05@gmail.com')->send(new \App\Mail\OtpMail(123456)); - // return 'OK'; - // }); - -/* -|-------------------------------------------------------------------------- -| ADMIN -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth'])->prefix('admin')->group(function () { - - Route::get('/dashboard', function () { - return view('admin.dashboard'); - })->name('admin.dashboard'); - - // ========================= - // PENGHUNI - // ========================= - Route::get('/penghuni', [PenghuniController::class, 'index'])->name('penghuni.index'); - Route::get('/penghuni/create', [PenghuniController::class, 'create'])->name('penghuni.create'); - Route::post('/penghuni/store', [PenghuniController::class, 'store'])->name('penghuni.store'); - Route::get('/penghuni/edit/{id}', [PenghuniController::class, 'edit'])->name('penghuni.edit'); - Route::put('/penghuni/update/{id}', [PenghuniController::class, 'update'])->name('penghuni.update'); - Route::get('/penghuni/delete/{id}', [PenghuniController::class, 'destroy'])->name('penghuni.delete'); - - // ========================= - // RUMAH (FIX TOTAL) - // ========================= - Route::post('/rumah/store', [PenghuniController::class, 'storeRumah'])->name('rumah.store'); - - Route::get('/rumah/{id}/edit', [PenghuniController::class, 'editRumah']) - ->name('rumah.edit'); - - // 🔥 INI YANG DIPAKAI UNTUK UPDATE (SUDAH FIX) - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']) - ->name('admin.rumah.update'); - - Route::delete('/rumah/{id}', [PenghuniController::class, 'destroyRumah']) - ->name('rumah.destroy'); - - - // ========================= - // IURAN - // ========================= - Route::prefix('iuran')->group(function () { - Route::get('/', [IuranController::class, 'index'])->name('iuran.index'); - Route::get('/create', [IuranController::class, 'create'])->name('iuran.create'); - Route::post('/store', [IuranController::class, 'store'])->name('iuran.store'); - Route::get('/edit/{id}', [IuranController::class, 'edit'])->name('iuran.edit'); - Route::put('/iuran/update/{id}', [IuranController::class, 'update'])->name('iuran.update'); - Route::delete('/iuran/{id}', [IuranController::class, 'destroy'])->name('iuran.destroy'); - Route::post('/iuran/approve/{id}', [IuranController::class, 'approve'])->name('iuran.approve'); - }); - - // ========================= - // LAYANAN - // ========================= - Route::get('/layanan', [LayananController::class, 'index'])->name('layanan.index'); - Route::post('/layanan/store', [LayananController::class, 'store'])->name('layanan.store'); - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi'])->name('layanan.tanggapi'); - Route::delete('/layanan/delete/{id}', [LayananController::class, 'destroy'])->name('layanan.delete'); - Route::prefix('admin')->group(function () { - - Route::put('/layanan/tanggapi/{id}', [LayananController::class, 'tanggapi']) - ->name('layanan.tanggapi'); - - }); - - // INFORMASI - // ======================= - // 🔥 ADMIN INFORMASI - // ======================= - Route::middleware(['auth'])->prefix('admin')->group(function () { - - // 🔥 INFORMASI (FIX FINAL) - Route::resource('informasi', InformasiController::class); - - }); - - // LAPORAN - Route::get('/laporan', [LaporanController::class, 'index'])->name('laporan.index'); - Route::get('/laporan/cetak', [LaporanController::class, 'cetak'])->name('laporan.cetak'); - - //user - Route::get('/admin/user', [AdminUserController::class, 'index'])->name('admin.user.index'); - Route::get('/admin/user/edit/{id}', [AdminUserController::class, 'edit'])->name('admin.user.edit'); - Route::put('/admin/user/update/{id}', [AdminUserController::class, 'update'])->name('admin.user.update'); - Route::delete('/admin/user/delete/{id}', [AdminUserController::class, 'destroy'])->name('admin.user.delete'); - - Route::post('/iuran/{id}/approve-admin', [IuranController::class, 'approveAdmin']) - ->name('iuran.approve.admin'); - - Route::post('/layanan/{id}/approve-admin', [LayananController::class, 'approveAdmin']) - ->name('layanan.approve.admin'); - - - }); - - Route::middleware(['auth', 'cek.status'])->group(function () { - - Route::get('/layanan/create', [UserLayananController::class, 'create'])->name('user.layanan.create'); - - Route::get('/layanan/status', [UserLayananController::class, 'status'])->name('user.layanan.status'); - - Route::get('/iuran', [UserController::class, 'iuran'])->name('user.iuran'); - - }); - - // ================= RT ================= - Route::middleware(['auth', 'role:rt'])->group(function () { - - Route::get('/rt/iuran', [IuranController::class, 'index'])->name('rt.iuran'); - - Route::post('/iuran/{id}/approve-rt', [IuranController::class, 'approveRT'])->name('iuran.approve.rt'); - - Route::post('/layanan/{id}/tanggapi-rt', [LayananController::class, 'tanggapiRT'])->name('layanan.tanggapi.rt'); - - Route::get('/rt/dashboard', [IuranController::class, 'dashboardRT']) - ->name('rt.dashboard'); - - Route::get('/rt/penghuni', [PenghuniController::class, 'indexRT']) - ->name('rt.penghuni'); - - }); - - -/* -|-------------------------------------------------------------------------- -| USER -|-------------------------------------------------------------------------- -*/ - -Route::middleware(['auth', 'role:user'])->prefix('user')->group(function () { - - // ========================= - // DASHBOARD - // ========================= - Route::get('/', [UserController::class, 'index'])->name('user.home'); - - // ========================= - // PROFIL - // ========================= - Route::get('/profil', [UserController::class, 'profil'])->name('user.profil'); - Route::post('/profil/update', [UserController::class, 'updateProfil'])->name('user.profil.update'); - - // ========================= - // 🔥 PENGHUNI (INI YANG KAMU BUTUH) - // ========================= - Route::post('/simpan-penghuni', [UserController::class, 'simpanPenghuni']) - ->name('user.simpan.penghuni'); - - // ========================= - // RUMAH - // ========================= - Route::get('/rumah', [UserController::class, 'rumah'])->name('user.rumah'); - - Route::get('/pilih-rumah/{id}', [UserController::class, 'pilihRumah']) - ->name('user.pilih.rumah'); - - Route::post('/simpan-rumah', [UserController::class, 'simpanRumah']) - ->name('user.simpan.rumah'); - - Route::post('/ambil-rumah', [UserController::class, 'ambilRumah']) - ->name('user.ambil.rumah'); - - Route::put('/rumah/update/{id}', [PenghuniController::class, 'updateRumah']); - - // ========================= - // IURAN - // ========================= - Route::get('/iuran', [UserIuranController::class, 'index'])->name('user.iuran.index'); - - Route::get('/iuran/upload/{id}', [UserIuranController::class, 'upload']) - ->name('user.iuran.upload'); - - Route::post('/iuran/upload/{id}', [UserIuranController::class, 'storeUpload']) - ->name('user.iuran.storeUpload'); - - Route::post('/iuran/qris/{id}', [UserIuranController::class, 'bayarQris']) - ->name('user.iuran.qris'); - - Route::delete('/iuran/delete/{id}', [UserIuranController::class, 'delete']) - ->name('user.iuran.delete'); - - // ========================= - // LAYANAN - // ========================= - Route::prefix('layanan')->group(function () { - - Route::get('/', [UserLayananController::class, 'create']) - ->name('user.layanan.create'); - - Route::post('/layanan/store', [UserLayananController::class, 'store']) - ->name('user.layanan.store'); - - Route::get('/status', [UserLayananController::class, 'status']) - ->name('user.layanan.status'); - }); - - Route::delete('/user/layanan/delete/{id}', [UserLayananController::class, 'delete']) - ->name('user.layanan.delete'); - - // ======================= - // 🔥 USER INFORMASI - // ======================= - Route::get('/home', [UserController::class, 'index'])->name('user.home'); - - Route::get('/informasi/{id}', [UserController::class, 'detailInformasi']) - ->name('user.informasi.detail'); - - // ========================= - // LAINNYA - // ========================= - Route::get('/pengumuman', [UserController::class, 'pengumuman'])->name('user.pengumuman'); - - Route::get('/upload-pembayaran', [UserController::class, 'uploadPembayaran']) - ->name('user.upload.pembayaran'); - - Route::get('/status-pembayaran', [UserController::class, 'statusPembayaran']) - ->name('user.status.pembayaran'); - - Route::get('/status-pengaduan', [UserController::class, 'statusPengaduan']) - ->name('user.status.pengaduan'); - - Route::post('/profile/upload-photo', [ProfileController::class, 'uploadPhoto']) - ->name('user.upload.photo'); -}); - - -/* -|-------------------------------------------------------------------------- -| ADMIN / GLOBAL -|-------------------------------------------------------------------------- -*/ - -Route::get('/admin/iuran/realtime', [IuranController::class, 'realtime']) - ->name('iuran.realtime'); - -Route::resource('iuran', IuranController::class); diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index fe7a80e..4b3efab 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -5,6 +5,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\User; +use Illuminate\Support\Facades\auth; class UserController extends Controller { @@ -14,6 +15,47 @@ public function index() return view('admin.user.index', compact('user')); } + // FORM CREATE + public function create() + { + if(Auth::user()->role != 'admin'){ + abort(403); + } + + return view('admin.user.create'); + } + +// SIMPAN DATA + public function store(Request $request) + { + if(Auth::user()->role != 'admin'){ + abort(403); + } + + $request->validate([ + 'name' => 'required', + 'email' => 'required|email|unique:users,email', + 'password' => 'required|min:6', + 'role' => 'required|in:rt' // 🔥 hanya boleh RT + ]); + + // 🔥 VALIDASI TAMBAHAN (ANTI NAKAL) + if ($request->role != 'rt') { + return back()->with('error', 'Hanya boleh menambahkan role RT!'); + } + + User::create([ + 'name' => $request->name, + 'email' => $request->email, + 'username' => $request->email, // biar aman + 'password' => bcrypt($request->password), + 'role' => 'rt' + ]); + + return redirect()->route('admin.user.index') + ->with('success', 'User RT berhasil ditambahkan'); + } + // 🔥 FORM EDIT public function edit($id) { diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 8c3beed..ef5168c 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -19,7 +19,7 @@ public function login() return view('auth.login'); } - public function prosesLogin(Request $request) + public function prosesLogin(Request $request) { $request->validate([ 'login' => 'required', @@ -27,26 +27,17 @@ public function prosesLogin(Request $request) ]); $login = $request->login; - $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; if (Auth::attempt([$field => $login, 'password' => $request->password])) { - $request->session()->regenerate(); - $user = Auth::user(); + /** @var \App\Models\User $user */ + $user = Auth::user(); - if ($user->role == 'admin') { - return redirect('/admin/dashboard'); - } - - if ($user->role == 'rt') { - return redirect('/rt/dashboard'); - } - - return match($user->role) { + return match($user->role) { 'admin' => redirect('/admin/dashboard'), - 'rt' => redirect('/rt/iuran'), + 'rt' => redirect('/rt/iuran'), default => redirect('/user/home'), }; } @@ -63,23 +54,19 @@ public function register() public function prosesRegister(Request $request) { - // VALIDASI $request->validate([ - 'name' => 'required', + 'name' => 'required', 'username' => 'required|unique:users,username', - 'email' => 'required|email|unique:users,email', + 'email' => 'required|email|unique:users,email', 'password' => 'required|min:6', ]); - // DEBUG (WAJIB COBA) - // dd($request->all()); - User::create([ - 'name' => $request->name, - 'username' => $request->username, // 🔥 INI WAJIB ADA - 'email' => $request->email, + 'name' => $request->name, + 'username' => $request->username, + 'email' => $request->email, 'password' => Hash::make($request->password), - 'role' => 'user' + 'role' => 'user' ]); return redirect('/login')->with('success', 'Register berhasil'); @@ -97,6 +84,8 @@ public function logout(Request $request) return redirect('/login'); } + // ================= FORGOT PASSWORD ================= + public function forgotForm() { return view('auth.forgot'); @@ -116,7 +105,7 @@ public function sendOtp(Request $request) $otp = rand(100000, 999999); - $user->otp_code = $otp; + $user->otp_code = $otp; $user->otp_expired = now()->addMinutes(5); $user->save(); @@ -155,12 +144,12 @@ public function verifyOtp(Request $request) return redirect()->route('password.reset'); } - public function resetForm() + public function resetForm() { return view('auth.reset'); } - public function resetPassword(Request $request) + public function resetPassword(Request $request) { $request->validate([ 'password' => 'required|min:6|confirmed' @@ -172,8 +161,8 @@ public function resetPassword(Request $request) return redirect()->route('password.forgot'); } - $user->password = Hash::make($request->password); - $user->otp_code = null; + $user->password = Hash::make($request->password); + $user->otp_code = null; $user->otp_expired = null; $user->save(); diff --git a/app/Http/Controllers/IuranController.php b/app/Http/Controllers/IuranController.php index f1ab764..bff6f4a 100644 --- a/app/Http/Controllers/IuranController.php +++ b/app/Http/Controllers/IuranController.php @@ -5,20 +5,34 @@ use Illuminate\Http\Request; use App\Models\Iuran; use App\Models\Penghuni; -use Carbon\Carbon; +use App\Models\Rumah; +use App\Models\Layanan; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Auth; class IuranController extends Controller { public function index() { - $iuran = Iuran::with('penghuni')->get(); // relasi ke penghuni + $user = Auth::user(); + + if ($user->role == 'admin') { + $iuran = Iuran::with('penghuni')->get(); + } else { + $iuran = Iuran::with('penghuni') + ->where('rt_id', $user->id) + ->get(); + } + return view('admin.iuran.index', compact('iuran')); } public function create() { - $penghuni = Penghuni::all(); // ambil data penghuni + $rtId = Auth::id(); + + $penghuni = Penghuni::where('rt_id', $rtId)->get(); + return view('admin.iuran.create', compact('penghuni')); } @@ -29,63 +43,62 @@ public function store(Request $request) 'bulan' => 'required', 'tahun' => 'required', 'jumlah' => 'required', - 'jenis_iuran' => 'required', // 🔥 WAJIB - 'keterangan' => 'required', // 🔥 tambahkan ini - 'status' => 'required|in:lunas,belum', + 'jenis_iuran' => 'required', + 'keterangan' => 'required', ]); + // 🔥 ambil penghuni + $penghuni = Penghuni::findOrFail($request->penghuni_id); + Iuran::create([ 'penghuni_id' => $request->penghuni_id, + + // 🔥 FIX UTAMA (ambil dari penghuni) + 'rt_id' => $penghuni->rt_id, + 'bulan' => $request->bulan, 'tahun' => $request->tahun, 'jumlah' => $request->jumlah, - 'jenis_iuran' => $request->jenis_iuran, // ✅ - 'keterangan' => $request->keterangan, // ✅ + 'jenis_iuran' => $request->jenis_iuran, + 'keterangan' => $request->keterangan, 'status' => 'belum', - 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, ]); - // ========================= - // 🔥 TAMBAHAN WHATSAPP - // ========================= + // 🔥 WHATSAPP + $penghuni = Penghuni::find($request->penghuni_id); - $penghuni = \App\Models\Penghuni::find($request->penghuni_id); + if ($penghuni && $penghuni->telepon) { + $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - if ($penghuni && $penghuni->telepon) { + $pesan = "Halo {$penghuni->nama},\n"; + $pesan .= "Iuran baru ditambahkan:\n"; + $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; + $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; + $pesan .= "Jenis: {$request->jenis_iuran}\n"; + $pesan .= "Terima kasih 🙏"; - // format nomor - $nohp = preg_replace('/^0/', '62', $penghuni->telepon); - - $pesan = "Halo {$penghuni->nama},\n"; - $pesan .= "Iuran baru ditambahkan:\n"; - $pesan .= "Bulan: {$request->bulan} {$request->tahun}\n"; - $pesan .= "Jumlah: Rp " . number_format($request->jumlah,0,',','.') . "\n"; - $pesan .= "Jenis: {$request->jenis_iuran}\n"; - $pesan .= "Terima kasih 🙏"; - - Http::withHeaders([ - 'Authorization' => env('FONNTE_TOKEN') - ])->post('https://api.fonnte.com/send', [ - 'target' => $nohp, - 'message' => $pesan, - ]); - } + Http::withHeaders([ + 'Authorization' => env('FONNTE_TOKEN') + ])->post('https://api.fonnte.com/send', [ + 'target' => $nohp, + 'message' => $pesan, + ]); + } return redirect()->route('iuran.index') ->with('success', 'Data iuran berhasil ditambahkan'); } - public function edit($id) { - $iuran = Iuran::findOrFail($id); - $penghuni = Penghuni::all(); + $iuran = Iuran::where('rt_id', Auth::id())->findOrFail($id); + $penghuni = Penghuni::where('rt_id', Auth::id())->get(); return view('admin.iuran.edit', compact('iuran', 'penghuni')); } public function update(Request $request, $id) { - $iuran = Iuran::findOrFail($id); + $iuran = Iuran::where('rt_id', Auth::id())->findOrFail($id); $request->validate([ 'penghuni_id' => 'required', @@ -105,23 +118,60 @@ public function update(Request $request, $id) 'jenis_iuran' => $request->jenis_iuran, 'keterangan' => $request->keterangan, 'status' => $request->status, - 'tanggal_bayar' => $request->status == 'lunas' - ? ($request->tanggal_bayar ?? now()) - : null, + 'tanggal_bayar' => $request->status == 'lunas' ? now() : null, ]); return redirect()->route('iuran.index')->with('success', 'Data berhasil diupdate'); } - public function destroy($id) + public function destroy($id) { - $iuran = Iuran::findOrFail($id); + $iuran = Iuran::where('rt_id', Auth::id())->findOrFail($id); $iuran->delete(); - return redirect()->route('iuran.index')->with('success', 'Data berhasil dihapus'); + return back()->with('success', 'Data berhasil dihapus'); } - public function approve($id) + public function dashboardRT() + { + $rtId = Auth::id(); + + $totalPenghuni = Penghuni::count(); + $totalRumah = Rumah::count(); + $totalIuran = Iuran::count(); + $totalPengaduan = Layanan::count(); + + $menungguRT = Iuran::where('rt_id', $rtId) + ->where('status', 'belum') + ->count(); + + $menungguAdmin = Iuran::where('rt_id', $rtId) + ->where('status', 'proses') + ->count(); + + return view('rt.dashboard', compact( + 'totalPenghuni', + 'totalRumah', + 'totalIuran', + 'totalPengaduan', + 'menungguRT', + 'menungguAdmin' + )); + } + + public function approveRT($id) + { + $iuran = Iuran::where('rt_id', Auth::id())->findOrFail($id); + + $iuran->update([ + 'status' => 'menunggu', + 'tanggal_bayar' => now() + ]); + + return back()->with('success', 'Dikirim ke Admin'); + } + + public function approveAdmin($id) { $iuran = Iuran::findOrFail($id); @@ -130,57 +180,6 @@ public function approve($id) 'tanggal_bayar' => now() ]); - return back(); + return back()->with('success', 'Iuran disetujui admin'); } - - public function realtime() - { - $iuran = Iuran::with('penghuni')->get(); - - return response()->json($iuran); - } - - public function approveRT($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'proses'; // ke admin - $iuran->save(); - - return back()->with('success', 'Disetujui RT → ke Admin'); -} - -public function approveAdmin($id) -{ - $iuran = Iuran::findOrFail($id); - - $iuran->status = 'selesai'; - $iuran->tanggal_bayar = now(); - $iuran->save(); - - return back()->with('success', 'Iuran selesai'); -} - -public function dashboardRT() -{ - // total data - $totalPenghuni = \App\Models\Penghuni::count(); - $totalIuran = \App\Models\Iuran::count(); - $totalPengaduan = \App\Models\Layanan::count(); - - // status khusus RT - $menungguRT = \App\Models\Iuran::where('status', 'belum') - ->whereNotNull('bukti_pembayaran') - ->count(); - - $menungguAdmin = \App\Models\Iuran::where('status', 'proses')->count(); - - return view('rt.dashboard', compact( - 'totalPenghuni', - 'totalIuran', - 'totalPengaduan', - 'menungguRT', - 'menungguAdmin' - )); -} } diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 9439f25..0ca1bd0 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -3,16 +3,65 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Models\Layanan; +use App\Models\Penghuni; +use App\Models\Rumah; +use App\Models\Iuran; class LaporanController extends Controller { - public function index() + public function index(Request $request) { - return view('admin.laporan.index'); + $bulan = $request->bulan ?? now()->month; + + // 🔥 DATA PENGADUAN + $dataPengaduan = Layanan::whereMonth('created_at', $bulan)->get(); + + $sukses = $dataPengaduan->where('status', 'selesai')->count(); + $gagal = $dataPengaduan->where('status', 'diajukan')->count(); + + // 🔥 DATA TAMBAHAN + $totalRumah = Rumah::count(); + $totalPenghuni= Penghuni::count(); + + $totalIuran = Iuran::whereMonth('created_at', $bulan)->sum('jumlah'); + + return view('admin.laporan.index', compact( + 'bulan', + 'sukses', + 'gagal', + 'totalRumah', + 'totalPenghuni', + 'totalIuran' + )); } - public function cetak() + public function cetak(Request $request) { - return "Fitur cetak PDF nanti di sini"; + $bulan = $request->bulan ?? now()->month; + + // 🔥 DATA PENGADUAN + $dataPengaduan = Layanan::whereMonth('created_at', $bulan)->get(); + + $sukses = $dataPengaduan->where('status', 'selesai')->count(); + $gagal = $dataPengaduan->where('status', 'diajukan')->count(); + + // 🔥 DATA TAMBAHAN + $totalRumah = Rumah::count(); + $totalPenghuni= Penghuni::count(); + $totalIuran = Iuran::whereMonth('created_at', $bulan)->sum('jumlah'); + + return view('admin.laporan.cetak', [ + 'bulan' => $bulan, + 'sukses' => $sukses, + 'gagal' => $gagal, + + // 🔥 TAMBAHAN INI + 'penghuni' => Penghuni::count(), + 'rumah' => Rumah::count(), + 'iuran' => Iuran::sum('jumlah'), + + 'data' => $dataPengaduan + ]); } } diff --git a/app/Http/Controllers/LayananController.php b/app/Http/Controllers/LayananController.php index 3f374c2..341bfcd 100644 --- a/app/Http/Controllers/LayananController.php +++ b/app/Http/Controllers/LayananController.php @@ -8,17 +8,39 @@ use Illuminate\Support\Facades\Mail; use App\Mail\NotifPengaduan; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Auth; class LayananController extends Controller { - public function index() - { - $layanan = Layanan::with('penghuni')->latest()->get(); - $penghuni = Penghuni::all(); + public function index() +{ + $user = Auth::user(); - return view('admin.layanan.index', compact('layanan', 'penghuni')); + // 🔥 ADMIN + if ($user->role == 'admin') { + + $layanan = Layanan::with('penghuni') + ->whereIn('status', ['menunggu', 'selesai']) // ✅ FIX DI SINI + ->latest() + ->get(); } + // 🔥 RT + else { + + $rtId = $user->id; + + $layanan = Layanan::with('penghuni') + ->whereHas('penghuni', function ($q) use ($rtId) { + $q->where('rt_id', $rtId); + }) + ->latest() + ->get(); + } + + return view('admin.layanan.index', compact('layanan')); +} + public function store(Request $request) { Layanan::create([ @@ -124,28 +146,31 @@ public function destroy($id) } public function tanggapiRT(Request $request, $id) - { - $request->validate([ - 'tanggapan_admin' => 'required' - ]); +{ + $request->validate([ + 'tanggapan_admin' => 'required' + ]); - $layanan = Layanan::with('penghuni')->findOrFail($id); + $layanan = Layanan::with('penghuni')->findOrFail($id); - $layanan->tanggapan_admin = $request->tanggapan_admin; - $layanan->status = 'proses'; - $layanan->save(); + // ✅ update data yg dipilih + $layanan->tanggapan_admin = $request->tanggapan_admin; - // 🔥 KIRIM NOTIF - $this->kirimNotif($layanan); + // 🔥 kirim ke admin + $layanan->status = 'menunggu'; - return back()->with('success', 'Ditanggapi RT + Notif terkirim'); - } + $layanan->save(); // ✅ BENAR + + $this->kirimNotif($layanan); + + return back()->with('success', 'Berhasil ditanggapi RT'); +} public function approveAdmin($id) { - $layanan = Layanan::with('penghuni')->findOrFail($id); + $layanan = Layanan::findOrFail($id); - $layanan->status = 'selesai'; + $layanan->status = 'selesai'; // ✅ WAJIB $layanan->save(); // 🔥 KIRIM NOTIF @@ -201,5 +226,15 @@ private function kirimNotif($layanan) } } + public function indexAdmin() + { + $layanan = Layanan::with('penghuni') + ->where('status', 'menunggu') // 🔥 hanya dari RT + ->latest() + ->get(); + + return view('admin.layanan.index', compact('layanan')); + } + } diff --git a/app/Http/Controllers/PenghuniController.php b/app/Http/Controllers/PenghuniController.php index 227fa13..9b2858b 100644 --- a/app/Http/Controllers/PenghuniController.php +++ b/app/Http/Controllers/PenghuniController.php @@ -7,13 +7,16 @@ use App\Models\Rumah; use Illuminate\Http\Request; use Carbon\Carbon; +use App\Models\User; +use Illuminate\Support\Facades\Auth; +use App\Models\Layanan; class PenghuniController extends Controller { // ========================= // TAMPILKAN DATA // ========================= - public function index(Request $request) + public function index(Request $request) { // tambah rumah dari modal if ($request->has('blok')) { @@ -26,6 +29,12 @@ public function index(Request $request) $file->move(public_path('foto_rumah'), $namaFile); } + $rtId = $this->getRtOtomatis($request->blok); + + if (!$rtId) { + return back()->with('error', 'Blok tidak dikenali!'); + } + Rumah::create([ 'blok' => $request->blok, 'no_rumah' => $request->no_rumah, @@ -34,19 +43,12 @@ public function index(Request $request) 'harga' => $request->harga, 'keterangan' => $request->keterangan, 'foto' => $namaFile, + 'rt_id' => $rtId ]); - Penghuni::where('status_huni', 'Kontrak') - ->whereNotNull('tanggal_keluar') - ->where('tanggal_keluar', '<', now()) - ->update(['status' => 'Tidak Aktif']); - - - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); } - // 🔥 FIX UTAMA DI SINI $penghuni = Penghuni::with('rumah')->get(); $rumahList = Rumah::with('penghuni')->get(); @@ -68,6 +70,7 @@ public function create() public function store(Request $request) { $validated = $request->validate([ + 'nama' => 'required|string|max:100', 'no_ktp' => 'required|string|max:20|unique:penghuni,no_ktp', 'email' => 'required|email|max:100|unique:penghuni,email', @@ -80,9 +83,27 @@ public function store(Request $request) 'tanggal_keluar' => 'nullable|date|after_or_equal:tanggal_masuk', ]); + if ($request->rumah_id) { + + $rumah = \App\Models\Rumah::find($request->rumah_id); + + if ($rumah && $rumah->rt_id) { + + $jumlah = \App\Models\Penghuni::whereHas('rumah', function ($q) use ($rumah) { + $q->where('rt_id', $rumah->rt_id); + })->count(); + + if ($jumlah >= 10) { + return back()->with('error', 'RT sudah penuh (max 10 penghuni)'); + } + } + } + // 🔥 AUTO ISI TANGGAL MASUK $validated['tanggal_masuk'] = $request->input('tanggal_masuk') ?: now(); + $validated['user_id'] = Auth::id(); + $penghuni = Penghuni::create($validated); // set rumah jadi terisi @@ -179,7 +200,6 @@ public function storeRumah(Request $request) 'status' => 'required', ]); - // 🔥 HANDLE FOTO $namaFile = null; if ($request->hasFile('foto')) { $file = $request->file('foto'); @@ -187,18 +207,26 @@ public function storeRumah(Request $request) $file->move(public_path('foto_rumah'), $namaFile); } - Rumah::create([ + // 🔥 INI YANG DIPAKAI + $rtId = $this->getRtOtomatis($request->blok); + + if (!$rtId) { + return back()->with('error', 'Blok tidak dikenali!'); + } + + \App\Models\Rumah::create([ 'blok' => $request->blok, 'no_rumah' => $request->no_rumah, 'status' => $request->status, 'luas_tanah' => $request->luas_tanah, 'harga' => $request->harga, 'keterangan' => $request->keterangan, - 'foto' => $namaFile, // 🔥 TAMBAHAN + 'foto' => $namaFile, + 'rt_id' => $rtId ]); - return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); - } + return redirect()->back()->with('success', 'Rumah berhasil ditambahkan'); + } // ========================= // EDIT RUMAH @@ -228,6 +256,12 @@ public function updateRumah(Request $request, $id) 'foto' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' ]); + $rtId = $this->getRtOtomatis($request->blok); + + if (!$rtId) { + return back()->with('error', 'Blok tidak dikenali!'); + } + $data = [ 'blok' => $request->blok, 'no_rumah' => $request->no_rumah, @@ -235,6 +269,7 @@ public function updateRumah(Request $request, $id) 'luas_tanah' => $request->luas_tanah, 'harga' => $request->harga, 'keterangan' => $request->keterangan, + 'rt_id' => $rtId ]; // =============================== @@ -285,8 +320,186 @@ public function destroyRumah($id) public function indexRT() { - $penghuni = Penghuni::with('rumah')->get(); + $rtId = Auth::id(); + + $penghuni = \App\Models\Penghuni::whereHas('rumah', function ($q) use ($rtId) { + $q->where('rt_id', $rtId); + })->get(); return view('rt.penghuni.index', compact('penghuni')); } + + public function bagiRT() + { + $rtList = User::where('role', 'rt')->get(); + $rumahs = Rumah::orderBy('id')->get(); + + if ($rtList->count() == 0) { + return back()->with('error', 'RT belum ada!'); + } + + $rtIndex = 0; + $counter = 0; + + foreach ($rumahs as $rumah) { + + $rumah->rt_id = $rtList[$rtIndex]->id; + $rumah->save(); + + $counter++; + + if ($counter == 10) { + $rtIndex++; + $counter = 0; + + if ($rtIndex >= $rtList->count()) { + $rtIndex = 0; + } + } + } + + return back()->with('success', 'Pembagian RT berhasil!'); + } + + public function rumahRT() + { + $rtId = Auth::id(); + + $rumah = \App\Models\Rumah::where('rt_id', $rtId)->get(); + + return view('rt.rumah.index', compact('rumah')); + } + + public function iuranRT() + { + $rtId = Auth::id(); + + $iuran = \App\Models\Iuran::whereHas('penghuni.rumah', function ($q) use ($rtId) { + $q->where('rt_id', $rtId); + })->get(); + + return view('rt.iuran.index', compact('iuran')); + } + + public function dashboardRT() + { + $rtId = Auth::id(); + + $totalRumah = \App\Models\Rumah::where('rt_id', $rtId)->count(); + + $totalPenghuni = \App\Models\Penghuni::whereHas('rumah', function ($q) use ($rtId) { + $q->where('rt_id', $rtId); + })->count(); + + return view('rt.dashboard', compact('totalRumah', 'totalPenghuni')); + } + private function getRtOtomatis($blok) + { + if (!$blok) return null; + + // 🔥 bersihin input + $blok = trim($blok); + $blok = strtoupper($blok); + + $prefix = substr($blok, 0, 1); + + $mapping = [ + 'D' => 13, + 'E' => 19, + 'C' => 28, + 'B' => 34, + ]; + + return $mapping[$prefix] ?? null; + } + + // private function getRtOtomatis() + // { + // $rtList = \App\Models\User::where('role', 'rt')->orderBy('id')->get(); + + // if ($rtList->count() == 0) { + // return null; + // } + + // $jumlahRumah = \App\Models\Rumah::count(); + + // // tiap 10 rumah pindah RT + // $rtIndex = floor($jumlahRumah / 10); + + // // reset kalau melebihi jumlah RT + // if ($rtIndex >= $rtList->count()) { + // $rtIndex = 0; + // } + + // return $rtList[$rtIndex]->id; + // } + + public function layananRT() + { + $rtId = Auth::user()->id; + + $data = Layanan::whereHas('penghuni', function ($q) use ($rtId) { + $q->where('rt_id', $rtId); + })->get(); + + return view('rt.layanan.index', ['layanan' => $data]); + } + + public function home() + { + $user = Auth::user(); + + $penghuni = \App\Models\Penghuni::where('user_id', $user->id)->first(); + + $rumah = null; + $rtUser = null; + + if ($penghuni && $penghuni->rumah) { + $rumah = $penghuni->rumah; + + // 🔥 ambil user RT dari rt_id + $rtUser = \App\Models\User::where('id', $rumah->rt_id) + ->where('role', 'rt') + ->first(); + } + + return view('user.rumah', compact('penghuni', 'rumah', 'rtUser')); + } + + public function editProfile() + { + $user = Auth::user(); + return view('rt.profile.edit', compact('user')); + } + + public function updateProfile(Request $request) + { + $user = \App\Models\User::find(Auth::id()); + + $request->validate([ + 'photo' => 'nullable|image|mimes:jpg,png,jpeg|max:2048' + ]); + + if ($request->hasFile('photo')) { + + if ($user->photo && file_exists(public_path('profile/'.$user->photo))) { + unlink(public_path('profile/'.$user->photo)); + } + + $file = $request->file('photo'); + $filename = time().'_'.$file->getClientOriginalName(); + + $file->move(public_path('profile'), $filename); + + $user->photo = $filename; + } + + $user->save(); + + Auth::login($user); // 🔥 penting + + return back()->with('success', 'Foto berhasil diupdate!'); + } + } + diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 18c7e2b..78fc5b3 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -36,6 +36,42 @@ public function update(Request $request) return back()->with('success', 'Profile berhasil diupdate'); } + // ================= PROFIL ================= + + public function profil() + { + return view('profile.edit', [ + 'user' => Auth::user() + ]); + } + + public function updateProfil(Request $request) + { + /** @var \App\Models\User $user */ + $user = User::find(Auth::id()); + + $request->validate([ + 'name' => 'required|string|max:255', + 'username' => 'required|string|max:255|unique:users,username,' . $user->id, + 'email' => 'required|email|max:255|unique:users,email,' . $user->id, + 'password' => 'nullable|min:6|confirmed', + 'password_confirmation' => 'nullable', + ]); + + $user->name = $request->name; + $user->username = $request->username; + $user->email = $request->email; + + if ($request->filled('password')) { + $user->password = Hash::make($request->password); + } + + $user->save(); + + // ❌ SEBELUM (redirect ke home) + return redirect()->route('user.home')->with('success', 'Profile berhasil diupdate'); + } + public function uploadPhoto(Request $request) { $request->validate([ @@ -59,6 +95,108 @@ public function uploadPhoto(Request $request) 'photo' => $filename ]); + return back()->with('success', 'Data berhasil diubah'); + } + + // ================= PROFIL RT ================= + +public function rtProfil() +{ + return view('profile.edit', [ + 'user' => Auth::user() + ]); +} + + public function rtUpdateProfile(Request $request) + { + /** @var \App\Models\User $user */ + $user = User::find(Auth::id()); + + $request->validate([ + 'name' => 'required|string|max:255', + 'username' => 'required|string|max:255|unique:users,username,' . $user->id, + 'email' => 'required|email|max:255|unique:users,email,' . $user->id, + 'password' => 'nullable|min:6|confirmed', + 'photo' => 'nullable|image|mimes:jpg,png,jpeg|max:2048', + ]); + + $user->name = $request->name; + $user->username = $request->username; + $user->email = $request->email; + + if ($request->filled('password')) { + $user->password = Hash::make($request->password); + } + + // Handle upload foto jika ada + if ($request->hasFile('photo')) { + if ($user->photo && file_exists(public_path('profile/' . $user->photo))) { + unlink(public_path('profile/' . $user->photo)); + } + $file = $request->file('photo'); + $filename = time() . '.' . $file->getClientOriginalExtension(); + $file->move(public_path('profile'), $filename); + $user->photo = $filename; + } + + $user->save(); + + return redirect()->route('rt.profil')->with('success', 'Profile berhasil diupdate'); + } + + // ================= PROFIL RT ================= + + public function editProfile() + { + $user = Auth::user(); + return view('rt.profile.edit', compact('user')); // ✅ ganti ini + } + + public function updateprofile(Request $request) + { + /** @var \App\Models\User $user */ + $user = User::find(Auth::id()); + + $request->validate([ + 'name' => 'required|string|max:255', + 'username' => 'required|string|max:255|unique:users,username,' . $user->id, + 'email' => 'required|email|max:255|unique:users,email,' . $user->id, + 'password' => 'nullable|min:6|confirmed', + ]); + + $user->name = $request->name; + $user->username = $request->username; + $user->email = $request->email; + + if ($request->filled('password')) { + $user->password = $request->password; + } + + $user->save(); + + return back()->with('success', 'Profile berhasil diupdate'); + } + + public function uploadPhotoRT(Request $request) + { + $request->validate([ + 'photo' => 'required|image|mimes:jpg,png,jpeg|max:2048' + ]); + + /** @var \App\Models\User $user */ + $user = Auth::user(); + + if ($user->photo && file_exists(public_path('profile/' . $user->photo))) { + unlink(public_path('profile/' . $user->photo)); + } + + $file = $request->file('photo'); + $filename = time() . '.' . $file->getClientOriginalExtension(); + $file->move(public_path('profile'), $filename); + + $user->photo = $filename; + $user->save(); + return back()->with('success', 'Foto berhasil diupload'); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 3862663..a7dc7cc 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -15,68 +15,59 @@ class UserController extends Controller // BERANDA USER // ========================= public function index() - { - $penghuni = Penghuni::with('rumah') - ->where('email', Auth::user()->email) - ->first(); +{ + $user = Auth::user(); - // 🔥 PASTIKAN NULL JIKA TIDAK ADA - if (!$penghuni) { - $penghuni = null; + // 🔥 Query by EMAIL (karena user_id masih null sebelum pilih rumah) + $penghuni = Penghuni::with('rumah') + ->where('email', $user->email) + ->latest() + ->first(); + + $rumah = $penghuni ? $penghuni->rumah : null; + + // 🔥 WAJIB ADA - dipakai di hero stats view + $rumahList = \App\Models\Rumah::all(); + + $rtUser = null; + if ($rumah && $rumah->rt_id) { + $rtUser = \App\Models\User::where('id', $rumah->rt_id)->first(); } - // 🔥 TAMBAHAN INI - // if (!$penghuni) { - // $penghuni = \App\Models\Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'no_ktp' => rand(1000000000000000, 9999999999999999), - // 'email' => Auth::user()->email, - // 'telepon' => '-', - // 'alamat' => '-', - // 'status_huni' => 'Kontrak', - // ]); - // } + $iuran = collect(); + $hidden = session()->get('hidden_iuran', []); + $hiddenLayanan = session()->get('hidden_layanan', []); - // 🔥 AMBIL IURAN BERDASARKAN PENGHUNI - $iuran = null; - - $iuran = collect(); - - // 🔥 TAMBAHAN (JANGAN DIHAPUS) - $hidden = session()->get('hidden_iuran', []); - - $hiddenLayanan = session()->get('hidden_layanan', []); - - if ($penghuni) { - $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hidden) // 🔥 TAMBAHAN FILTER - ->orderBy('tahun', 'desc') // 🔥 tahun terbaru dulu - ->orderBy('bulan', 'asc') // 🔥 bulan urut - ->get(); - } - - $pengaduan = collect(); - - // 🔥 TAMBAHAN INI (WAJIB) - $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') - ->orderBy('tanggal', 'desc') - ->get(); - - if ($penghuni) { - $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) - ->whereNotIn('id', $hiddenLayanan) - ->latest() - ->get(); - } - - $isExpired = false; - - if ($penghuni && $penghuni->status == 'Tidak Aktif') { - $isExpired = true; - } - - return view('user.home', compact('penghuni', 'iuran', 'pengaduan', 'informasi', 'isExpired')); + if ($penghuni) { + $iuran = \App\Models\Iuran::where('penghuni_id', $penghuni->id) + ->whereNotIn('id', $hidden) + ->orderBy('tahun', 'desc') + ->orderBy('bulan', 'asc') + ->get(); } + + $pengaduan = collect(); + $informasi = \App\Models\Informasi::orderBy('is_penting', 'desc') + ->orderBy('tanggal', 'desc') + ->get(); + + if ($penghuni) { + $pengaduan = \App\Models\Layanan::where('penghuni_id', $penghuni->id) + ->whereNotIn('id', $hiddenLayanan) + ->latest() + ->get(); + } + + $isExpired = false; + if ($penghuni && $penghuni->status == 'Tidak Aktif') { + $isExpired = true; + } + + return view('user.home', compact( + 'penghuni', 'rumah', 'rumahList', 'rtUser', + 'iuran', 'pengaduan', 'informasi', 'isExpired' + )); +} // ========================= // PROFIL // ========================= @@ -102,64 +93,82 @@ public function updateProfil(Request $request) // ========================= // RUMAH // ========================= - public function rumah() - { - $user = Auth::user(); +public function rumah() +{ + $user = Auth::user(); - if (!$user) { - return redirect('/login'); + $penghuni = \App\Models\Penghuni::with('rumah') + ->where('email', $user->email) // 🔥 BY EMAIL, BUKAN user_id + ->latest() + ->first(); + + $rumah = $penghuni ? $penghuni->rumah : null; + + $rtUser = null; + if ($rumah && $rumah->rt_id) { + $rtUser = \App\Models\User::where('id', $rumah->rt_id) + ->where('role', 'rt') + ->first(); } - $penghuni = Penghuni::with('rumah') - ->where('email', $user->email) - ->first(); + $rumahList = \App\Models\Rumah::all(); - // 🔥 TAMBAHAN INI (WAJIB) - $rumahList = Rumah::all(); - - return view('user.rumah', compact('penghuni', 'rumahList')); - } + return view('user.rumah', compact('penghuni', 'rumah', 'rtUser', 'rumahList')); +} // ========================= // 🔥 TAMBAHAN: PILIH RUMAH // ========================= - public function pilihRumah($id) - { - $rumah = Rumah::findOrFail($id); +public function pilihRumah($id) +{ + $user = Auth::user(); - // kalau sudah terisi - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah terisi'); - } + $rumah = \App\Models\Rumah::findOrFail($id); - // cari penghuni berdasarkan email user login - $penghuni = Penghuni::where('email', Auth::user()->email)->first(); - -if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); -} - - // kalau belum ada, buat otomatis - // if (!$penghuni) { - // $penghuni = Penghuni::create([ - // 'nama' => Auth::user()->name, - // 'email' => Auth::user()->email, - // 'status' => 'Aktif' - // ]); - // } - - // update rumah ke penghuni - $penghuni->update([ - 'rumah_id' => $rumah->id - ]); - - // update status rumah - $rumah->update([ - 'status' => 'Terisi' - ]); - - return back()->with('success', 'Berhasil memilih rumah'); + // ❌ kalau rumah sudah terisi + if ($rumah->status == 'Terisi') { + return back()->with('error', 'Rumah sudah diambil!'); } + // 🔥 cari penghuni berdasarkan EMAIL ATAU USER_ID + $penghuni = \App\Models\Penghuni::where('user_id', $user->id) + ->orWhere('email', $user->email) + ->first(); + + // 🔥 kalau belum ada sama sekali + if (!$penghuni) { + $penghuni = new \App\Models\Penghuni(); + } + + // 🔥 SET DATA WAJIB (update juga kalau sudah ada) + $penghuni->user_id = $user->id; + $penghuni->nama = $user->name; + // $penghuni->no_ktp = $user->no_ktp ?? '-'; + $penghuni->email = $user->email; + // $penghuni->telepon = $user->telepon ?? 'Belum diisi'; + // $penghuni->alamat = $user->alamat ?? 'Belum diisi'; + $penghuni->status = 'Aktif'; + $penghuni->status_huni = 'Tetap'; + + // 🔥 kalau belum ada tanggal masuk + if (!$penghuni->tanggal_masuk) { + $penghuni->tanggal_masuk = now(); + } + + // 🔥 SET RUMAH + $penghuni->rumah_id = $rumah->id; + + // ✅ TAMBAHKAN INI (PENTING BANGET) + $penghuni->rt_id = $rumah->rt_id; + + $penghuni->save(); + + // 🔥 UPDATE STATUS RUMAH + $rumah->status = 'Terisi'; + $rumah->save(); + + return redirect()->route('user.rumah')->with('success', 'Berhasil pilih rumah!'); +} + // // ========================= // // IURAN // // ========================= @@ -190,73 +199,69 @@ public function pilihRumah($id) // return view('user.pengumuman'); // } - public function ambilRumah(Request $request) +public function ambilRumah(Request $request) { - $request->validate([ - 'rumah_id' => 'required|exists:rumah,id' - ]); + $user = Auth::user(); - $rumah = Rumah::findOrFail($request->rumah_id); + $rumah = \App\Models\Rumah::findOrFail($request->rumah_id); - if ($rumah->status == 'Terisi') { - return back()->with('error', 'Rumah sudah diambil!'); - } - - $penghuni = Penghuni::where('email', Auth::user()->email)->firstOrFail(); + // 🔥 ambil penghuni yang SUDAH ADA + $penghuni = \App\Models\Penghuni::where('email', $user->email)->first(); if (!$penghuni) { - return back()->with('error', 'Isi data penghuni dulu!'); + return back()->with('error', 'Data penghuni belum ada!'); } - if ($penghuni->rumah_id) { - return back()->with('error', 'Anda sudah memiliki rumah!'); - } + // 🔥 hanya update yang penting saja + $penghuni->user_id = $user->id; // pastikan tidak null + $penghuni->rumah_id = $rumah->id; + $penghuni->rt_id = $rumah->rt_id; - $rumah->status = 'Terisi'; -$rumah->save(); + $penghuni->save(); -$penghuni->rumah_id = $rumah->id; -$penghuni->save(); + // 🔥 update status rumah + $rumah->status = 'Terisi'; + $rumah->save(); - return redirect()->route('user.rumah') - ->with('success', 'Berhasil mengambil rumah!'); + return redirect()->route('user.rumah')->with('success', 'Berhasil ambil rumah!'); } - public function simpanPenghuni(Request $request) + public function simpanPenghuni(Request $request) { $request->validate([ - 'nama' => 'required', - 'no_ktp' => 'required|unique:penghuni,no_ktp', - 'telepon' => 'required', - 'alamat' => 'required', - 'status_huni' => 'required|in:Tetap,Kontrak', - 'tanggal_masuk' => 'nullable|date', + 'nama' => 'required', + 'no_ktp' => 'required', + 'telepon' => 'required', + 'alamat' => 'required', + 'status_huni' => 'required|in:Tetap,Kontrak', 'tanggal_keluar' => 'nullable|date' ]); - if (Penghuni::where('email', Auth::user()->email)->exists()) { - return back()->with('error', 'Data sudah pernah diisi'); -} + $user = Auth::user(); - \App\Models\Penghuni::create([ - // 🔥 TAMBAHAN WAJIB - 'user_id' => \Illuminate\Support\Facades\Auth::id(), - - 'nama' => $request->nama, - 'email' => \Illuminate\Support\Facades\Auth::user()->email, - 'no_ktp' => $request->no_ktp, - 'telepon' => $request->telepon, - 'alamat' => $request->alamat, - 'status_huni' => $request->status_huni, - // 🔥 FIX DI SINI (JANGAN PAKAI REQUEST) - 'tanggal_masuk' => now(), + // 🔥 Cek duplikat by EMAIL + if (Penghuni::where('email', $user->email)->exists()) { + return redirect()->route('user.rumah') + ->with('info', 'Data penghuni sudah ada!'); + } + Penghuni::create([ + 'nama' => $request->nama, + 'email' => $user->email, + 'no_ktp' => $request->no_ktp, + 'telepon' => $request->telepon, + 'alamat' => $request->alamat, + 'status_huni' => $request->status_huni, + 'tanggal_masuk' => now(), 'tanggal_keluar' => $request->status_huni == 'Kontrak' - ? $request->tanggal_keluar - : null, + ? $request->tanggal_keluar + : null, + 'status' => 'Aktif', ]); - return redirect()->route('user.home')->with('success', 'Data penghuni berhasil disimpan'); + // 🔥 REDIRECT KE user.rumah (bukan user.home) + return redirect()->route('user.rumah') + ->with('success', 'Data penghuni berhasil disimpan!'); } // public function ambilRumah(Request $request) diff --git a/app/Http/Controllers/dashboardController.php b/app/Http/Controllers/dashboardController.php index 1c85bfa..67d9ce6 100644 --- a/app/Http/Controllers/dashboardController.php +++ b/app/Http/Controllers/dashboardController.php @@ -2,12 +2,111 @@ namespace App\Http\Controllers; -use Illuminate\Http\Request; +use App\Models\Layanan; +use App\Models\Penghuni; +use App\Models\Rumah; +use App\Models\Iuran; +use Illuminate\Support\Facades\Auth; class DashboardController extends Controller { public function index() { - return view('dashboard'); + $user = Auth::user(); + + // 🔥 Statistik status + $statistik = Layanan::selectRaw('status, COUNT(*) as total') + ->groupBy('status') + ->pluck('total', 'status'); + + $diajukan = $statistik['diajukan'] ?? 0; + $menunggu = $statistik['menunggu'] ?? 0; + $selesai = $statistik['selesai'] ?? 0; + + return view('rt.dashboard', [ + 'totalPenghuni' => Penghuni::count(), + 'totalRumah' => Rumah::count(), + 'totalIuran' => Iuran::count(), + 'totalPengaduan'=> Layanan::count(), + + 'menungguRT' => $diajukan, + 'menungguAdmin' => $menunggu, + + 'diajukan' => $diajukan, + 'menunggu' => $menunggu, + 'selesai' => $selesai, + ]); } -} + + // 🔥 DASHBOARD ADMIN + public function admin() +{ + $totalPenghuni = Penghuni::count(); + $totalRumah = Rumah::count(); + $totalPengaduan = Layanan::count(); + $totalIuran = Iuran::sum('jumlah'); + + // ========================= + // 🔥 BULANAN (REAL - 12 BULAN) + // ========================= + $chartBulananRaw = Layanan::selectRaw("MONTH(created_at) as bulan, COUNT(*) as total") + ->groupBy('bulan') + ->pluck('total','bulan'); + + $chartBulanan = []; + for ($i = 1; $i <= 12; $i++) { + $chartBulanan[] = $chartBulananRaw[$i] ?? 0; + } + + // ========================= + // 🔥 HARIAN (7 HARI TERAKHIR) + // ========================= + $harianRaw = Layanan::selectRaw("DATE(created_at) as tgl, COUNT(*) as total") + ->whereDate('created_at', '>=', now()->subDays(6)) + ->groupBy('tgl') + ->pluck('total','tgl'); + + $chartHarian = []; + for ($i = 6; $i >= 0; $i--) { + $tgl = now()->subDays($i)->format('Y-m-d'); + $chartHarian[] = $harianRaw[$tgl] ?? 0; + } + + // ========================= + // 🔥 MINGGUAN (4 MINGGU TERAKHIR) + // ========================= + $chartMingguan = []; + for ($i = 3; $i >= 0; $i--) { + $start = now()->subWeeks($i)->startOfWeek(); + $end = now()->subWeeks($i)->endOfWeek(); + + $total = Layanan::whereBetween('created_at', [$start, $end])->count(); + $chartMingguan[] = $total; + } + + // ========================= + // 🔥 TAHUNAN (4 TAHUN TERAKHIR) + // ========================= + $tahunanRaw = Layanan::selectRaw("YEAR(created_at) as tahun, COUNT(*) as total") + ->groupBy('tahun') + ->pluck('total','tahun'); + + $chartTahunan = []; + $tahunSekarang = now()->year; + + for ($i = 3; $i >= 0; $i--) { + $tahun = $tahunSekarang - $i; + $chartTahunan[] = $tahunanRaw[$tahun] ?? 0; + } + + return view('admin.dashboard', compact( + 'totalPenghuni', + 'totalRumah', + 'totalPengaduan', + 'totalIuran', + 'chartHarian', + 'chartMingguan', + 'chartBulanan', + 'chartTahunan' + )); +}} diff --git a/app/Models/Iuran.php b/app/Models/Iuran.php index bb01b28..def87bc 100644 --- a/app/Models/Iuran.php +++ b/app/Models/Iuran.php @@ -13,6 +13,7 @@ class Iuran extends Model protected $fillable = [ 'penghuni_id', + 'rt_id', 'bulan', 'tahun', 'jumlah', diff --git a/app/Models/Penghuni.php b/app/Models/Penghuni.php index aad3dba..4e95d26 100644 --- a/app/Models/Penghuni.php +++ b/app/Models/Penghuni.php @@ -27,9 +27,9 @@ class Penghuni extends Model ]; // 🔥 RELASI KE RUMAH - public function rumah() + public function rumah() { - return $this->belongsTo(Rumah::class, 'rumah_id'); + return $this->belongsTo(\App\Models\Rumah::class, 'rumah_id'); } public function user() diff --git a/app/Models/Rumah.php b/app/Models/Rumah.php index 3cb8339..7ba853d 100644 --- a/app/Models/Rumah.php +++ b/app/Models/Rumah.php @@ -21,6 +21,7 @@ class Rumah extends Model 'gambar', 'keterangan', 'foto', + 'rt_id', // 🔥 TAMBAHAN UNTUK RELASI RT // 'denah', // 🔥 TAMBAHAN UNTUK DENAH ]; @@ -32,5 +33,10 @@ public function penghuni() return $this->hasOne(Penghuni::class, 'rumah_id', 'id'); } + public function rt() + { + return $this->belongsTo(\App\Models\User::class, 'rt_id'); + } + } diff --git a/app/Models/User.php b/app/Models/User.php index da38d39..1ce9fc4 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -52,4 +52,9 @@ public function penghuni() { return $this->hasOne(\App\Models\Penghuni::class, 'email', 'email'); } + + public function rumahs() + { + return $this->hasMany(\App\Models\Rumah::class, 'rt_id'); + } } diff --git a/database/migrations/2025_08_19_020000_create_rumah_table.php b/database/migrations/2025_08_19_020000_create_rumah_table.php index acf29a8..24d354f 100644 --- a/database/migrations/2025_08_19_020000_create_rumah_table.php +++ b/database/migrations/2025_08_19_020000_create_rumah_table.php @@ -21,6 +21,8 @@ public function up(): void $table->string('gambar')->nullable(); $table->text('keterangan')->nullable(); $table->string('foto')->nullable(); + $table->unsignedBigInteger('rt_id')->nullable(); + $table->timestamps(); }); } diff --git a/database/migrations/2025_08_19_031832_create_penghuni_table.php b/database/migrations/2025_08_19_031832_create_penghuni_table.php index 3078846..38547ef 100644 --- a/database/migrations/2025_08_19_031832_create_penghuni_table.php +++ b/database/migrations/2025_08_19_031832_create_penghuni_table.php @@ -31,6 +31,8 @@ public function up(): void $table->enum('status_huni', ['Tetap', 'Kontrak'])->default('Tetap'); $table->date('tanggal_masuk')->nullable(); $table->date('tanggal_keluar')->nullable(); + $table->unsignedBigInteger('user_id')->nullable(); + $table->unsignedBigInteger('rt_id')->nullable(); $table->timestamps(); }); } diff --git a/database/migrations/2025_08_26_013910_create_iuran_table.php b/database/migrations/2025_08_26_013910_create_iuran_table.php index c48b693..2249d00 100644 --- a/database/migrations/2025_08_26_013910_create_iuran_table.php +++ b/database/migrations/2025_08_26_013910_create_iuran_table.php @@ -8,26 +8,36 @@ { public function up(): void { - Schema::create('iuran', function (Blueprint $table) { + Schema::create('iuran', function (Blueprint $table) { $table->id(); + $table->unsignedBigInteger('penghuni_id'); + $table->unsignedBigInteger('rt_id'); // 🔥 WAJIB + $table->string('bulan'); $table->year('tahun'); $table->decimal('jumlah', 12, 2); - $table->string('jenis_iuran')->nullable(); // contoh: keamanan, kebersihan + + $table->string('jenis_iuran')->nullable(); $table->text('keterangan')->nullable(); - $table->enum('status', ['lunas', 'belum'])->default('belum'); + + $table->enum('status', ['belum', 'menunggu', 'lunas'])->default('belum'); $table->date('tanggal_bayar')->nullable(); - // 🔥 TAMBAHAN INI $table->string('bukti_pembayaran')->nullable(); $table->timestamps(); + // RELASI $table->foreign('penghuni_id') - ->references('id') - ->on('penghuni') - ->onDelete('cascade'); + ->references('id') + ->on('penghuni') + ->onDelete('cascade'); + + $table->foreign('rt_id') + ->references('id') + ->on('users') + ->onDelete('cascade'); }); } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..59cff68 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -20,4 +20,5 @@ public function run(): void 'email' => 'test@example.com', ]); } + } diff --git a/public/bukti/1776512964.png b/public/bukti/1776512964.png new file mode 100644 index 0000000000000000000000000000000000000000..d789e8313fb1698f5ed4822d711e8b04555363a5 GIT binary patch literal 249498 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�i@jAG3woSp;;~KJ6)Od!N8`PnR{c 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

ySBldj_nEl_`i+u?_vV=f=WXwKlF~ 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 PkO5TERIHJ=`t*MQyu%$z literal 0 HcmV?d00001 diff --git a/public/bukti/1776513030.png b/public/bukti/1776513030.png new file mode 100644 index 0000000000000000000000000000000000000000..d789e8313fb1698f5ed4822d711e8b04555363a5 GIT binary patch literal 249498 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�i@jAG3woSp;;~KJ6)Od!N8`PnR{c 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

ySBldj_nEl_`i+u?_vV=f=WXwKlF~ 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 PkO5TERIHJ=`t*MQyu%$z literal 0 HcmV?d00001 diff --git a/public/bukti/1776785664.jpeg b/public/bukti/1776785664.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..71485712b72081674c6e6129c2a71032e19485d5 GIT binary patch literal 164414 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

fV6^(YP0u>^n#`bXg76d;c?n(OdcbyGBjJ`VKWB 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

#dlD3Mz}Jn(+jMTh5v3k{cgiB6A+ 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

=o`naZosdJ>SUXH3MC6oo2>@;l+}fy( zsocif?2WpCJB92chV=EtE3NiX8*5I5s-_HdrEpL2*^f{P5m8p#NFzTxSdXoV?#P92 z0HSfL2xX8qL-SLbn+bFzq`~1PfvT*zFNN~3mh-R{I~I_`s$;z>W4x+NQif{o72JO( z{wOJBdMmDOG>T6gg!v?$Td1r=sIIL0#^8;O`^P30y9g37seCFWd{F!dpXM2{%c|T% z?=l;HCO*lP(^*b+%tvb8PC;%X!s}!SKuID=l zrmltE#BNM7+_;!GlU!=K$oe7O+cFOUNY>mQslp8sDIhH`sYuOkMfGN)jFVFZ1lg%R zV<->i>8uVRDsz@^U%ESTc46SeWj48U62KwOPrNv)S?ksqK5JDNfKN5ED#aiybD$ux z<;F5f*jc9}Qmzp2dCJkta}RpR_2rZH+VFj=D*S(xT@$Zk^xXyt}4t8naj{Sbqb zDGr{$U)|zg);IGhjK4CS{it=TalIU->>lv6Fm5J#C^Vzl<*Q_WkYCm6KI;mK&jT$1 z$DsskW0WiQBqlZ*8;#X%(5Vra`Ve4=GYj)$MF>gOfH}N_#rSTfp0Qqs~SW64op+UM&HRWA{He6xY5tB)6L~ zFj3~XV}3@;?$6%x#)J=kK-?A_BGmf+@&E5`2mwtonyE=+Sh~E`a>RJ4`*^`N*7B&F z+-t1%Qrp8iEzOPg%w(W2;HgUigz4vFf+@P5xBgrCPW?|EC~OPT#Ks^GN^{%`JSYii zgqPn-elGE6^RFw232$}QtSa=jw)>GWvcE9v3Zje{X_f3V&&>P&6Q6~2IhuaBL(@$VRh1Bjj4VHT3HqJ1B5z7`YE6`@V^e?S(pbQkpK0lH3{@G~2 zn(ee_ctcIi#i_r4-YVQ~da|cTfP_Ve&$P*Lb#Hht@rmKE-l#^i*-)Wt&#g~FuD%x_ z@(73CE z@WH?)3o#IInqCqYxk5m4-68gKwPy7mDrrYu$GrR*#&@6w{RA12Zt�BwSX#jRQ(| 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 literal 0 HcmV?d00001 diff --git a/public/bukti/1776787153.jpeg b/public/bukti/1776787153.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..71485712b72081674c6e6129c2a71032e19485d5 GIT binary patch literal 164414 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

fV6^(YP0u>^n#`bXg76d;c?n(OdcbyGBjJ`VKWB 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

#dlD3Mz}Jn(+jMTh5v3k{cgiB6A+ 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

=o`naZosdJ>SUXH3MC6oo2>@;l+}fy( zsocif?2WpCJB92chV=EtE3NiX8*5I5s-_HdrEpL2*^f{P5m8p#NFzTxSdXoV?#P92 z0HSfL2xX8qL-SLbn+bFzq`~1PfvT*zFNN~3mh-R{I~I_`s$;z>W4x+NQif{o72JO( z{wOJBdMmDOG>T6gg!v?$Td1r=sIIL0#^8;O`^P30y9g37seCFWd{F!dpXM2{%c|T% z?=l;HCO*lP(^*b+%tvb8PC;%X!s}!SKuID=l zrmltE#BNM7+_;!GlU!=K$oe7O+cFOUNY>mQslp8sDIhH`sYuOkMfGN)jFVFZ1lg%R zV<->i>8uVRDsz@^U%ESTc46SeWj48U62KwOPrNv)S?ksqK5JDNfKN5ED#aiybD$ux z<;F5f*jc9}Qmzp2dCJkta}RpR_2rZH+VFj=D*S(xT@$Zk^xXyt}4t8naj{Sbqb zDGr{$U)|zg);IGhjK4CS{it=TalIU->>lv6Fm5J#C^Vzl<*Q_WkYCm6KI;mK&jT$1 z$DsskW0WiQBqlZ*8;#X%(5Vra`Ve4=GYj)$MF>gOfH}N_#rSTfp0Qqs~SW64op+UM&HRWA{He6xY5tB)6L~ zFj3~XV}3@;?$6%x#)J=kK-?A_BGmf+@&E5`2mwtonyE=+Sh~E`a>RJ4`*^`N*7B&F z+-t1%Qrp8iEzOPg%w(W2;HgUigz4vFf+@P5xBgrCPW?|EC~OPT#Ks^GN^{%`JSYii zgqPn-elGE6^RFw232$}QtSa=jw)>GWvcE9v3Zje{X_f3V&&>P&6Q6~2IhuaBL(@$VRh1Bjj4VHT3HqJ1B5z7`YE6`@V^e?S(pbQkpK0lH3{@G~2 zn(ee_ctcIi#i_r4-YVQ~da|cTfP_Ve&$P*Lb#Hht@rmKE-l#^i*-)Wt&#g~FuD%x_ z@(73CE z@WH?)3o#IInqCqYxk5m4-68gKwPy7mDrrYu$GrR*#&@6w{RA12Zt�BwSX#jRQ(| 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 literal 0 HcmV?d00001 diff --git a/public/bukti/1776930601.png b/public/bukti/1776930601.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3eae631d89b11b81f5b521e2cfe5361e50b757 GIT binary patch literal 438264 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

Wm-Vyl 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%0AbIpRk2&wiGp9|O#u--> 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 z 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�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 Mn*YEn@7hHC2R1v4QUCw| literal 0 HcmV?d00001 diff --git a/public/bukti/1776975196.png b/public/bukti/1776975196.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3eae631d89b11b81f5b521e2cfe5361e50b757 GIT binary patch literal 438264 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

Wm-Vyl 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%0AbIpRk2&wiGp9|O#u--> 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 z zb6#+bGB>u4;bQpFV4j>v-?p?Av6PS^ts~M|#*@rpL`F479tWLB3vM=67qs(DP6{h} zHP`PC+9n|_qzvkRuihMppY^6n}d={63dEM zn&*yKbWzdVZb|cKP$<=0siN{`JRQUq&E%n~7>)@rwTqQ^qsd^=LzC_3#wkiih|$Sz zOk`lbG-RNgv7)-VURIdN;BrawF+>4Su*u1{W)&x6x90jil|6O2wId)BINGj?O!9xvTN+X3p6&jB5Lw)?@w37qA68rX4O69pZ^zC*J|K4J>n{K))qU=gPhjBY_vfa?sp@^ z9I)T9zhiKn%3)h*#rhN0_@^Gqf~bOQmq9LeaoFDP(yDQiiC{NAaB}p!@HMisM`Xfd zArR?Yv+h2D{$PV zxc1bBiWe6)*2C7GyLx1@y`tHRWS-fvJ$n8&ZIfYCcM1leP$t&VV5Ult8aRARoR9*! zpKr^A-i9Mr_Go^~zNJ5{sy&{v6gV;KV_d=6xw&jRd`7 z-7_LmpWFv2%fMVZejHlE#(3`nb>0N4na=Vh=8rL#5uRTy)4jSvha9^vgL3HwjZr#ZwUdAsW?$Z zMNLc|*n3>O`aJio)n7m95$bWbQ&}m3B$JWGd?a6x8EThdHM88|VPq9QX|mUR2NO!c zN%XFKB;Wu2ePTJYs8WK>s(>HEmYsuie9To4Ob~%S7J>jn3*LNPKmlhu=~oZ4z!=2i zCJIRNY%??i9i5HNs@ht1&wHy!-K%s)s;dRNR+pwop#63YxX6I1=C{`4Z=Y>%<(?$= zb~OY#LIbzlQ9Orl+J2Z^+s|u)JTs=i=J_ND>|yvZ+h`PhF$|3&P}EwP|*qjv1l{#@QU&NjC$0|&!HSop70*gYy z;LvDKrN10H=i4GGc!(HGIEA1sj?Pg9I4!`{DtS&R?FkQUay!vuArZD2Lt^HNh z_(OMbV|rekLPmG%W%FC_$Ifo8Hr)=PKw&d-R>o*aainGhBvb4MLcWW%Dz0tH#KJv? zs+Dl&+qaCRxC7^h5p&13Ox3vJI4gBoOa;1P>?^Hrk-&r-bncvYfzGM7!wjRY@;wds zu6VlfK2VzQzh$cuJFyrwk$)w07HY|w?BH0^V-#SY2jRebF)?2>qPg{b`ohGO{lWTvA=d)O|0?nI z#VC*k)7}+BX3e-+Sb7{!Z|(KNeKzMMuSRH=m}8L$bqrX@Ve)p*V#;!yho5|- z$T3BkI3&GB3U@m?CK5l#UTRlK_pq|96`}e?q)VBDA?O|~bnX)aW((=O62L&%iH1r+ zYWB52{M4Oy!>1$jJi#c}d(5M;N3hY|0oA}dl01_lk;2ZQH7)JEx7X-l>6?&^jU^)z zd4^RmqDQ$5n)wSi|8K!z&Qw5FU&-Jd;l##CNs8TfI` zyxF|IAe*Iu7x*eDl(XDcLxMwI$pR7D4Es;4Tjc^v%Q(~N>(k>g@S*f^@p+!17Di1G z?rI&BZJnWs{?97ROZtlJolbirLc@i|VxAq9D0g9SXF1dP&~?_^u*`%tTF*@)D5WMd zrZY|}@Uo*oUFpR@1MIM$jg z0MtD;>QJ`+)?*7rX6zI@*I+l}4K-m8f#5^ey@=1b;eH8cl-+YTwzpQmsI38%{sKM% zIso;4-@nRqRTL-571vOZAX6;87t?GtL9$)VsmTFKjd2`%)AmvN)t0w-u*u zB12?-yP_%!hB{g+3Mo3{4A{1KC*qTTK9w-)nZ2RICJ=nD4eqDL{`c__VfcTqr@jwV zG7~>nlYexd3;Eqb)=~g8KpolO^mOOgY`Cgw9FAQMS{7b76kBmDo)m(twbC)nmdO1; zWi{K05`Y6*A_VLj8Oda64gKy)iZ1#8JhU2CX7Q|3D#k|Ip)aF-SgC zcgs30p$Garng(JjEWx~gdx=!LeX_pgQ~fVi6&t%@`MeR7}SUcBpS(eyY-DUmrF zX6E#jp|o!Ue~RNH!XjwMZc{YYKV`?FI~s4DKxy4M?OCdZ>$XwBBf8hJfpfnU8XR49 zZ7ZPnGv)O&U|k4DfX!6BVBDs8t1ua)El|#pXpvCu#B@2MIEt2yL#myCnp7!0#KtI# z$}meQqm~G4vpNQv*XkrASy=v> z5B%e)OhWeCB|4ps2A^^~hk4$Api8!lHI#9OTPS7XL8?9Df>$JD&+Vm37x~RP8AB@s z+)`4QM^3rOVfECRRaW=7JxOp?b6M?wSF5l7?S?KXti7@s@Y|EA{YvWziz+T;pY|{6w?Sttfw5Z8SID4R8_aGOO>r)gS6Eb z`ct81F)?99V)YN((MB5ja7Rw6*&*OI8yT)q;;@S7XgDgq?jS%DagJ^SvZ1KfUdM4X zeV~o#kg)5bE0l_Js_KrbT4#r`63QEU4VnJ^pqESVZ33cePN1W`JrZe3j4aW4aZoOI zC0X^al#pDqd+Tk28yhi$P7M(cz3aw;?6|9rTb5{9P=1Gcsc>&lwh2^D2}F)jX4kC6 zX29y5{!E0@k*)EyOvJx>KL{zKDhn4mYUFq7Nz#+0ltsZ4eY+}RItyr3GuF?y7K!JxNZx1Zk#}TYx{i!Roh-0;G~;2VuQKiJWJp5bQ^#tmNw#*91v#a(sy`-P zjOt6oC`Gv(B`zc!Qm&;A#GJP2%Z0qk51TFWGT_3Zxc@>;+)njaA;Hi%Ik@;tx`r_m zPqc69Awh%P+M+|AkD}X^fP< z%Q73^N^RuCURon=0(M_A$BjPO`rAAj5m(mog>POXk`dW5wB_BMJtU8UUq5{ndkab| zyo%=0fnuaXySpEotByPm`=31~vpI*PLHneV7sT+k4+ztWd5qY#+_uXUPO@-alb)2z zmd{)n;OKIIF+hS$Y(rUf52O{L(}Kinp1oKRHUGa(TOuYK+&5A6S#bo)jrK*U;j-jJ zWC4nNp#NR7`?E+CLlGeVBaqb=AXuYid^rT~ov+Lg9?Rq&CjqK|G+!ETZ0GOfYR_EHEo`$^hk7ZdRurc>L^7FyJ&(@T z`+~HZ&uKj&TF!f=uS9y+@HEni%H!oiQ|7VX(Ng5rrO=Fd{#F99`G1N^tdGK#-jAazsa(Im zfjDn*v)RWf^njoC3%Z?e@xNKq(i%>AjfU(;Ur7vgj~;YSK$z7!cKky2zt zEtZSLXTzf#$Qr?mLy8W}QAZRD$7bsd3d={(LQx{9$J~Ef0hh0RX<7gAe;*HN{G-Oe~cvU!ca7E?;W$ z`&+NSlYxK1698M!?K^eKb*FmJ>qYRU(o{_n*EPuNQ){ch0l-lhgLTm5$j7vs#&vR8 zudl>W#c!K{W*wCO+AV!#-@}$^!F9KhfZHKdnWvsbHj5}?+gRZV@;;A;(?OQDEn80n zBBQnN^nr2aAB~j1(sI8X;o|^(0B+UclGqOw&AS_^Jhwk^IB;Mg{8=a%&o^8SL_d=Q zKJLxFZFz%(>nu`@H2`U0xzSF@ENMj4S)FJsqyqQ4CJK@@1I8jRm^P49uGA;k4T&<6 zHQvMLjSdJ)oQ6jyL9r@#5o|Tv-h&22tIgbEjYZuc^PP13XvX`j#jMfe(f;c;idC~> zC8G4f&ox!jx6IEf&2m!3#7{vhj1f{1aw*;Zn@!Ay75Rxwy>7wCvPT__h=_bxxFB?f zP0rLc_fw4-E0=4>@T*x8Gkv4mnlZiyNIb*P_3wCxdd;P zDl$UpLrtP#QRnKrD7)o)+5O|_d*0&ry<6Zg?TqvPSA?JwFjdJK5FFa?J2q=9)g*=G za;nC(`4-;oZ*Oe>Ps`CBjvW84l4zJ~YoL#jL?t_hS(_tZT+ zF?YG==nx=V$y4Pu%hDS8y$(C>xJ`ZTcvm{?P^?m(yle`BRKj_#^zT)FUaTnQYft9> z3=#?rR#8|ZiMgA94`MP>?D{D zx{YS@`n0(6j^XzJP@do&P6&1tnG@%)2Zl?-19;E(`pt9xt2#z1e{XT;rXMYNj?avh zkdUg0P3Zzb{z9)u-9n#F{$JgH*f^9ALZb=;VI#*{@1bR<)8lPOP7{DoXyyA3=|WE- zU!hDZ4j{#16o*?89@yfaD3sSm^rxjd@FOoV#37nmG_{JVKtFzTDlgFjk^8ja?sn6I z9F=liun72nb3ZgJDYq5Y==x`qqu|Gx)Wvg>zT~g*cs|+$y8MWAc~&i#kyR%_1L484B}kq1L}B zC|ynu13g+&t?cZ2DfUa-Ojs!Z_a zNv$-NjjJ=NNHrYpn;R6Ya1AnQE8yK3N3(uQ5xO*L*`9)6-hL4z)t`)uvM@GA{ckQ^ zhERgf(j#Hk{`*6%=jPmYcEgp*r$(xWFj1Zl*H-pxG>l1wPeVF_gEOKOS3(%^P@u9R@ZdL zW*R-#WJ?=}m%*ijh4jX5%`>=ut<2+_N8e7ur`Dtcoy9E=m1Z>4v4`EQBuz=FWtl1v z>bK%g6)#;{qQODt^RD=L3=@H^ksry9CPVfsW*ur1>oW0Df~dPYNpE%Adt0nEqx~$b zqx?bBOnDmK5uH&69Mx*&TS+U4&q>FTkWXO&EP0kLydfAI1)ON4Ul3a2VhAU`Wpl*R z;KoVQB})q1tM>PNbbz^GB))vx2ABb*D4sPN2R^SaQXDA&9JUU=t+;E*ePpM7x9E)1 z@mwaYh_xOc_v?QcU333GjLt~l=@nyE&_U#C)b7-)b`Lx(w*tSR)K%j*2{Zi!6+b!YlDwIwXq1js+9d>p&-lxq_kXK#BUpYW!-Ih;5Y-BZLA#L9tX_ zHJ=q36>Jp_TE7Nf5WDNL(|Amjh9eseadn$FIC#VIpUGYsB>*yss061&J*#zDS%*1)wQa*(44rQkDSrnx7hp=GhIn8WpeU( zRoQ&wef95AHiVlz0#2uDp^ECX+4C&U-)!;ZFdj7+Wrj>Kpu(0Zh=a3(jee}hGbnM@ z)14d4vkuV~P43s4T5N?+4AivPTLoU+Ui2Knjha%;<$%(I{wq$Ls0pYcI&Y^}TV5yb zIKS7RZK~6-g2#Y7n@701X|vo>r&5WKC>u68hsYJZDCj^^;4?uXnb`r{{5nT@!2QW+ z;MtVejGF;UJcA&ij|G|O7~pp`vycHz8ufa)BMR1E_wRSKj6%`)Fz?2 zKpC>&gEx>p<@1kit0IX&I}n~??5IM}T7fN^ZiUkxP0Y>d7>Qu-F3U?TnUr;N4*$!F zI=@Tv4kCn;c|H{EIH_(n8^O!gCDcW9rq|?(E6SS3O0a9@iZxxV_6>KREQ*Y5Kj>gk zp#FW)H^X*+k=d*wN%oey(h!EkbCI2Zp_BEZ5xek+qP}Hv6IHO z-PlPR+vc6G_Xo_G=Q;bVz4uzLBvNEh&X}kaOSw~DV1g1U3ieg(OT^)mX%%-WDM=#i z-(%-TQ^ILFo;{2FE>-3Dens_TFVzmW9A#*e5Noj0o@!gQC)>TfDjc!a9!a56t^)0d z{;h$$Bo)ZqL(U*Q-%X-Kk9r2*woqIgxUcqr4K}?4#w1#^igZQxo{9`a5Iu?kwYTas zi*Ic$S1!A3a38Haim1N7ZhYsR`eVmYq4j8dhL$5)h{h0lmurp znU#W;mT9v(=jljwI|1`>r(r4$+)UuER1Qn5(812|={aX#>vJ5^*~%Sxx#ds=0yqjdP;I(%{&6N!xAky4 zaFl&2Bj;v}w^$So&b;f0VzgeNQxd}$>Cyv~(3}X2PgSr)X3}uiS?(;#O2a@SH^&@} zFQO*wZ)DQRo6fha%+&_<+{D>4n5Rv@4fiE&_te=r>|5q{jv&X`0kWeBca^b|%a^l$2PF_Xx4>{bsCFUc14=aEm*c zPeOW>Y$ueLhWL(E_21D+#2R^am{>Y|P0+dh?QOm-vOg{I`L%bh{|0Zs$F#lN~p_T(Va|Km# zo`I{NGHO*e!%;%%t;^B+o?F|9ngBF4JEA_5|#dXd? zd3FbsdHWxnF;JM~9h5hz<6W}S)Fo(=$n!2Uv^5swrmD@gT3jb@Sxw@I;+jN-MJJcy z$w1$FCE4lILiK}0!pN>Mj7J9C@uQv2ojsBl4UnWghY(U$#^=R<4Cp091&cWrZG~unYc{;5wkq8WW+5JNT$Mvt;Mqd zhMr(`IL(MpjFLE`jJ&&oN%UEettG{SZ~2BqN=QshgLX=qj0YB-{y=A2FX3bN+M}P< ze8oNey=6Jpv@cLF2s{8jezzdFI0e{lc>nl(`ToTFI0E*u4MjJN5IcGe7#)1fk5b2NrGT7j3lLP@tK0SSJyM&WgUNZ*=e=~kr%~qe zq;<|(cl$~eph#R@6reW-rxycLb*fE{(x8i|5|LO-l7)X^+rQ84O4ZW zQ6moi1WA%pyKeOwxYv*vk3Ouw1sJUtOL=Ald?qV4Vr#Nj4cLI5DStWp9MdC6VWQUp zuFK*HeD70v_|Myy53p&zO82_At!9M%J!b$X; zqA**VAk3FOLu8z6UU@BBQ=0^2O<1QMS|U2;q$E9%0GI_S{{(%CIcu@^8n5VUnV^Ch z8?iBt1^+h!%!ihwf{-%tczCkwxzCDz&M?E#WSFEc7b3dVh$^*KBRQ*%xaCWACQBUs zA$&u|8Pq3%l~_>T)==Z!ZRu>!bF_ZZ+myY>8RIw;9{i4kY+Svc;{UKR8sBwS+#_AW z>DoX74vh`rARbj)K`(1Q5!ZgZe_PGDPz|8j6Svr8RZfy+0e=XLx^>ux4@D~Mws!Kp zTMN%|oluv*=S}*vHi#lS`9~Rqij4XEHcj{aKC+J9!zfp=v6~qT1&wd*FMpPl7US_A z|MOYGM+23tYC$@iYQnBshL5((*Pm7K?|6|BT0=eHQgB>HEvDLhskLIdaGbwpW!G#+ z*LF4yrp&d^Bs48R08%(Uo{~VtB}fp7`PlaH%jlQ)%b_~vM@7LOR*oi&U)#h;Ndq7X znq(j_@yIb@Y)Wnyap_S>%YRr)7QdO*_di36sVkW#mX|0>t4(6(>>ZVp-#4K7C}AesT-7&McRKgnaq$9Ql(BN<{{$7UKQ-aJ1#U zGrb(+sMigFjx5dJfr|DcOh=+#ob#EPwcm`=XycZ+K~)J?Fe(5VIguqv*yTPh_*LW^ z_xbulEre0+wT&Huge*DGVkKoa|Ek;V+_vmvPr$#?TrPQ&cvLx}#r{dYex~5p@{~pv ze?yGWX+`QTpjcDa&&dDeCti=&N1}RcIf1?#aMCY|qL+;v zCk>v&8@;jPzc)kB<#X~pa!79Brpo}$jM?+81A&&GCB&RR)5&4_$H0`JL$=kbhJDxRs2!{x@OoH@?AcE*9aumDP2Hg#BV z7}7tRTIYWE$^P4q;ZJ@uKO0LNMfun@LV`$zNC}vCk}AGo7EiIxh5klJK2cOPZm`M)4C1o7ywF5!}F}xbjFc<;tW{T?I@b1UM|2*C*n%ST2mc4g9$LsxN=`qFm? z=lZo8%nxhxkOnh;psj0tfaib|u5cK*Kl;Ah@oc-E#5$K&D?0-BlE0PlOUg*sQIPvcBU}-=}NU>EG@m@jmQlEHd@z zJNtyw-w2swWn)R!4cNhttul^()V8w?tFml&(vl*?;+P}AeY*&Z5OgFgPk2LKOB=SW z0zC-bB6zrenzG32oeUeb=X#+@#wlI7@d`-A)}jKwa#4)dx1aaVy;mQ@y#&Xu0$59% z>r*&3w6G`0k`?eMSWp`C*@?L0^Ca1q$w{~{L?4}piEM{uS=&U|;8KPeOO!N+x$@Na z4LGU88>#vg^n{F^eQEHt6@yYMS2tgWto9cF-Km2Ab>0dXAxLSazFiJ~`^#|O?*(hB6AYD2z7BvU(xo+oz%^IfR;!q_^^sQmOEe0U%tMrs?ZmhYA^< zbD2lD_o*UyD~4m7`VVJ5|1p4<)$u*+DLXv(HOqAT`!(RhA;9-Y zyOx8X6C|D74jRioKK-Ajzq7#cl9wD^Eu5GAzNoTv3$*IGd$v%s?Ld{rS6+&j&|WYp zu6pdT?4p$?z$|HlLVYI5uB#>y1a$uR!~V#%MbPBC&pkt~+`0wCOgV5GUsgw`*w>M4 z0$Y^$XaLZ~DFa3jf*z+u5(J(fGfzBv)|T{5S~Uo2xoCOdgj7^sb-uYE2k;VEsIQ-RGE*|c<`cle>h-h3K zHX97Bd-@>nL}hxhwjo;uG6_EBt@?=Vt)!bvOA4$vu1}x)Y}a;6Ht%dRopni+!`gLj zNa)eWM{Mu8_aIYrx}U*pzHlua9>evca*@f%j#V3pr(OSFF>LmUEGwnL(#mk7EfI|n ze=KBd67YH(&1fVET#xf+{m!<&EE>I%KDa@LJ$Qagq=9CSzZHo7o`VZz7@np!dmf{X zgGUm|8T;M@DjUICs*Pj{=G+DQl!s1v(^h#|74Dp-bqK^zB1k$w`~b<*S65NX$O zr7zQJRrypp{2fUewkCti8CZaE-)bG=6in?syWS<>Rs3%}&PiTbNqP z7`AKl_Ggmw6z1%@|29`#`RbIODoJNxKMweR+-?3y;24G&wBxapL+||}x`v9xz$AC& z2=eq5dP%GW9fXgY~uaeED8Eux|Fu7@1>gM@qaHsq8ndJhzlqr>y=?}hvax+N;L#o*N% zEc25WYV`ATSSY5d_#)Vwax>V#*v`Th;JC2P`5|)UylY$jKzg`^^LrYeJA#@3bjUsJ z(FKp&-cwJ;uV(46J5z5LYt?kHTJow$@GGAephD__R zr8BsVN~^npU9hB}9xDYx=Io6wjpGL|Oc#F*$BDDJxAV)pxUbFP8VL^B>On66p;X8u zffki>#tou03b+Z=2H27Mm-ioad!M>N->UYWf^mF9)O3{Ml=|g_0LGsYL`%|~>lT>u zs%+p;3m4E&WC(Uay^(Z3^RSb#2lgy`D&;ZTS7fZ!wWN^!MGj`j3$-n~Qj#<1l2g9+k1NL`|wnMY!HXl23@mngOW9n52O8ff^5CZ<)cz*z0){ISCeO^_~H{U)w z;hf3aA;e7)xhjJ~`0wg?Z*fK?ZvCzDJ#p#eMOBLqy@N~M5PLAyi+Vz zuYQVL@tlcM&E4s2w1jWh69pHWmIOl!yKt~VDmT6YkN*FqclhTQ5U@E1ko zuw=F@U&{!?>xQx~tAJTM{E{_W>QyFeaQ-G)SY+%{@OR%n$7$ToJfMlX(8zfMc-7h? zDmI89aO-tmBZ&Vfe;URnF;|-aWrD2`O(?pY+eV$%N*ns2<^@@DikPS5wW}cSI`LBy z)-;yQvj>b3BoH9_%O)FLqi*5O@GTs-hOX?YdvY_F9k+X}JnRM+E1_;rGt)6(uO|_W z)J6{wP$uv?J-gF(H<*|H9k#3fw@L^xvXrfH!A~%*&N8cB)HC%W5Jua{DUI}MpdC4M zx(Dg+D=`P%JCe-`_UB@HHZEhbi~Yn3z3APPG4T3&*2rfsOH9FwRsk_WV#y|39o}D} z^W|0UZ`0t!_>C9}d`%kheH-}N&n?;a8}dubs5?^mDw=!%eH8j!4@Lm z%lG|Isx|+0Um%ZmDv$mQr{Wx(2MN+G*h<~>SFA%4P>JLGTwSe7WgS)`#FcYSq6N=& z_v#hh{o!rj{PrNB%jUWt)1XYRCAJ6KN*)Z51U*_2@Lop!>ajk}kkUaTMGjF+R{{^A z6k|XMV}yWJ#>Fue1B~G_vbJRDmiK&A3aE(D-DF1qNXZ;VY&Xco@earc+!-vICF}%_ z67UXvY~9W}NTQ0~4V4f6*rK}nr6r_LD) zgTS;dY#Q%WApGa9`;~oU>sp3XI~*o*29(R1{r@~?^;zyPxCw{yKl>%ndtJ8M!9pXC zO)3Twvd2k|W|iSgaZE&vvh#z4SgIk3C>dUD_fPD?k#DabWQ=1aXG59!_HkxQ#DEbys8fmvygbVdV9Sw>8m^iHI?5{4uZ;B`SR-(N8Qx^~tAt@l-(9Nt|BVLse=cHr-gnI; zy{`MwS6xau9NkJd09fDOK8C_1!70P(VW9Z|6-LB|n3)oqRGZ^r1Koy&xwZ|U+Qm_^ zUInY4NSv*K#Vc!k>lJS!9KDW{6&!>#ZF$Dd-dNRcq>+wll_`E-@Alui&xU|uCtER@ zwSW`OfQVPNi7V6P$R^$lQJ;AAj;<=~7-p+DI+aY#z1bMjkO27p1{(!0JM+h+$$7ProjFiBA3@X}NP@9o`NAdkt7oRc=<3biwAX#8PnTm%+k+`LA_ zCxjWleUWJDxwb2K&Hz#poDlfPjTSt`&!1<(+fG0uBlZpBK~xUBuTZJ!g=h^ZK$3-O zR~Irk4EUd^(}Es?Zl}pB{^tr2f>yNe-!+{<=uV_SvBP_Ufjbe7{Ime4v9)6CL`fV) zn~l~%rnw~ov-Nr-kVmBcuLqxn*!xsA>aFz9^xTfo65%{K85+g^lan z$_md6dfafeYEd97qXx@A^F0bYQPPqo+Ow}b-`is6c>i8^5c&M$ROz1MaB!+SEU|&b z-x1bEz^Wcp&sVBC{>>JNsLCWpvb2=jqSV48YLXTTZKqG5zx-Bm(c`nD**cTi<2PKP z5x8V$s+rk{%n5_q^?oQrvE#g~zYUDwG!Cn#iE>)oQDxV12`vawsj=1?_X^sS$!F%O zVcdPC^gP=|U6aG2zv-nGGh-#a8Y4 zLPDVZrF|iaQer9Akp@57-f>sY+FqDkKoh-M6?=m<|IaheuoQ~v=%gl0z%PR}xBgR1 zpk2K0pQO&e`xkDx{zK*?woJ8-S-l3S24pr`$`Fb%C9o0ty{=yjJAM|LJKAz`ZY*p| zhTZqzKU1heHC7`#hNO^&{Hp%z0OSFhw3Qprx%Rdlq~-5K#>Ore-xQt)P=Ij_U8!^S9A;@h zICEt)6_a(V3TmppIW*jcz>4zeFEpZGTtx#_aIH!~d6#nJvz_P1lTVutM@}V1nmHsK zb-XMg?)08tx@$MKg%!!XIgkPwSS4D=W5ZCN>|W0^Ot_0W^u#6}=tc4XTwR8s^i4{N; zL!U|&Y8XvbJ2K36GT$gl1Yh%2;yl1rzlcGAhH&dXiaP_`>$KIwkImVJ#VL;xKB7NJLLLW>*A#PECzs0ffnQyhnTj zXAWxdi+ThT+#q5KluFEeG-G6!3M$8AuGT!UiT6Zf6P)B_aS(Vuz{U686>WSvnUS=L zqe*zwRw03Hjg;9XsDRzN7tWy!QzBkaDQzia1;1Cp|KhuA7 zJQ`RoO{<&Y@p#LGnzGP!FXn>IYijKe}6p5Z?x@snwm^UtI|p-Lb^49_vVOVl*OX16?Yq{}X3DFA7SJV-Yw= zA8k9X;koOo3m6A&s37^K8kAVDg*e;R@+p^mhXE_kBdmKqZ;Xm$)0o8J!Z)8^>BrI* z45BpI8KMmX=v@I^9&8!CKeA`q-9{PC&pYUezYUJmC`tFGwPJKRpMD&DKDO(l9m@6# z7g4GM5+fAbl50w{XOW=5*wa%>vtrWt6{|$c4$7@eLr>YaM9rP>^FjiHKt!TJ+Piay z8#-r~y|*0}O_L?2D7g*_O^a^Q-xh_XBjI_rTHx}yA7jOObJw_Kyl^EcjTPRjso<%^ zm?$^8N&Ze{$I50~?)nts!e8`7f-pE`AxIJs4F>5-z^8ws)!b|}ki9G3Iwa_wj>$D+ zow04w1_>xmfwob_`7N0QFm(P7_}uuoWzg$=TO#u(KL@5VWSy&}0KY)RS1)3+gxuF} zR*H7kide-lRWNBd7(5o5Yibi&C>BDAF1eLKO~Q1u6WpB4C*B>lXc%}SV)yy_#KPol z+5w2K0;?WV>>U0FiNwobg^n=nj2hqm6Kh>t1|`hzcC{|L-!ARE_KQ5N%;u`pCsHRe zD5);7pBQE;Z97HUOPO>es>)<>rX`Rv!&Qpqz!YhTFAI?Fpk7wN5mU8@nbC#4em`?JsbM3$W-rC!+LW_mjEoY8Tb^x{V6OOq=-|0^)NalQSV8#lB0bO`~H z22WIQ-_cIsJ^yO^?g>sS+9!l>!WDvC`QTudD-U)tdsqq`Uu)VaEJ35QLRoD%Mg}?} z0GcpTGHAL@SKmd<^QLcLW_xCwWM#{@yQr7ZGrVHD@k|3Rpdt8}I+y?{gC%Z^|JeH| zy>9Dm1)|qYLn2sp$EMjykV*bZ?tBdf5UXIc3k!`b!MB} z)*^r+F3*2nJ7w^nEgZSsx)M45Q^xUMO@3RJrU`$dQYyLVC`>-2I~=}=%UY93bzo|) zha|?*Iu>Td@la!9?Ey$TyrS@S;dt!4zqmMN^VoZLJJ|Qe)M`*MkR?$tTBYSrDlq-r z@A)X`FE7gT*|*STz4Z3KXAo5;&m)hel<&5sd20OaAp?ytNzJ!zQOYl%loO^3O6V3% ze-G8m(H3rN=(M&eI63x>>o`3-Lcy4nFPWhSj>h2C;6l)1>cvvUFh4Jk-P1lSm&?~` z;Y5WE9oaOhZ-2gmQ+OJls*n6c>r4bPX8Exxm455H0-ytuUbOh*+;n|E0*>Fx-*S^S zdbiu?+%x^B4)dQRB~y-`v6q@JZdi-&@^0{5eF(t>Hlq7_xvn8q8roQY~h)q&smC4R{e^-H5*EjFdci0MECOJP(-G9!_K z?ndEqF}BvhPjVkBA9ZYmR2548b+6lL?Q=5NB9MB1ft+N3D^89{jd z*n53_XICvU2U{E)kLx6LSv-~>ffItcx~%d8`8Y@(^UXB_!C&t)9}GDH9Tj#Ve3iSZ zKH22UkHxCtkGNr^#BYCNMzg{F$(E3CC?ee8MF4;>XwZm0AkJ6&`|6=*=QEEaXLfeg zb>&6Ej?rnsQEtI!MPI4`Lv<5YI3YYFM;q+N>w*8J|LKK9TIvp!Ms+h|<+mtNC0L=U zr-@n&!p1d|lMI_GCgd7)x{bWckZZYD`(wXM?19JK+7C2>u*wEPqGLRKkT z(C69jAVYEelz~JZ>^)mIe-D*g+YQ6RqkjXSr)-9R?OxYEfJqrf0eYih`}4S)WQOl{ z&Huff(_d|vD)3qan6LY;{a#L#h!SXnV4fmF zRtx%v0gCBN#X)KY3C+ZBsw%5^NpXC+@wl6CHCAy6B&5W(O=s!FwdS?9HB18UalQPt zP9?{7h#YKz4h4{6q_MT#+W}`k-^Dk)*(qF}Ng6OFkc8$MhJzUFn->6eJ2=}<#hy7< zd_+QRIgAZ8rdPZnDUmQz7_#+E>Sgq|u5EXo?Fwk~Nvh8C&QF-{aqB)VgW$d2q?qld zsDlYXfUpK1Qm^k*c(3Q(-_Y(l%`_Xjm}=t(LCR1G%HYuJzt<>;j1v}_i{DH1oGTk% z++ZW0`(8rL4q|)5+-X_#&6JJULj1iO>w4LfYDp(5A35g;VRfV;`g;G2foOv4oPD;n zGro-Q;pgmhwI8)_wt;`gss{Wk6qTR|QmJTdfA75m;~C!5ho>*q9G+(8AFxLb!nYS1 zTBYx|Dm{r#Efcck z6?Cg&D*=$xvlP=wDN3H^45Zw@V8Hf9Ai-x0!-QH~WsPaa2|Sm>xe4SdiVV|WdKfNc zH^8S6fD?vVYlgn*_guXB_j>5aI6E5_pK;7&Gn9e(WKp+$mK$8B&g+NM* zxHM8md}W|ksX;v7x-FBh>Ms$QF0ri~Qb5a&<|YFf>O8`U`hk9IvEgxRUfXd!zt!`r z^UN!T$hc~AWidX9EE1?tE!n%`KO?B)wVurcd3ezC&jesG6M|0MZpCpYqa`^dbUZSe zELUy=eYmWqgl+nb-TsP4Q6LAT$Yg2r|=qQ z1WQ!RG1a@}CJnfVq=%E4-}9L}4cCx(1mZ z)JgG@wWy`j7U#3E5+8$ zjZ)-N(zd^qOrTn=1VMqm?WQfY}^i zZXquYQrkW&#_od=Bd?aIn;;Tx_()*a7nu{ya?dNnIf_*5 zMWyJNg={YvMIuDPsO{8PrxB?nOjmLhsDyJ2A9|tj*eDJoZ3n5+zqi_77P->#egE2h zztnZaiyLd_GdYXwuMDT)%LZcVAGO|JUUSbQBWm8F!_FXV+N$J6wdhQ9tVT(hFZ&ha zNvtvi56qJE#EB^wjprRk=?f1+qv0BVHm26BpESd3d93d0hwA}^kpUK|JQl|$4+0+y z{I3(;40K+l#5`Hwv$Zs%A#!*XP(UX3OQe;hKD3v;6o-Sb^t7a@07=87aTGX-WftF0 zX{wgf+e*seRptivhxXN)N4gYe?7efek18}P6Bet7NRa>_RptaPzMR{6?ss|dvUWLV zQt{bjKnRxx{@uC26E=GB3DH4^lI#1K_FF#uiD)JLrt!-~*N2 zw3DY5_aB!pqY7W2VsKvRi?cbWut;Qxga%&q=b1^Y$*hct)S@jv1&YH;{Yp~7RSO!m zWUo`Ip%@;@!Npa++Jzfn)6nu(w)yK5d)<|-M~r6D>w;rIK0x=AKMuM+Xh zzCRRv>ArWi8y~_#kwpk57C0+@I48W7w_5`OI$RW6cdWGHf4yt;q6kFS8#AFGOPZ+F zYn(g3?OgfjYcx&g)LpV2{YH?mWo=;m7IZ8d6c&4B$y^1q^xgrzNOUNdBsq-VGQU7w#c6g%$g3;w>fjP_x) z%aIMJGV5q4eivE?YwQi@WE!DuW}7W3ki?lJGNsd$G_LbsC7C7&Y&^muHst1a`-u~9i<}E3O7r`3isuRle z#3j_gE6yGfBhzq(i;#N=aq5-FkrW)HgEPhr8|g~j`>)>h(ENjNySItH$9+yodb5UD ztAz(wziQVION^v(%lLo3@+mNQRCj)Lmm2vt@)hP`@+ly}L?#uIwRYg3pxE~s@l7}P zs2SG;XP~mV;t0~~%Pr~ApbX|sD7yAkTK}-_P^OBvAXCRrt<#fDfJH_IuLnIFxeaz4jlytFKeu(D8Hvza&34s9^QS5lK4$t%JNfyHhbSKLzx7lH)z!C`phZOpONFdnW3 z$8mjS+yOj>E6~(FKJ$}Ek@j!}tiGkAP`0up_YkWji?G=1x=b3GhR`!p#FBVISVL-&jwEVt;!%#*&OAuS^S$&b$8X(e z5D7|-w#afOFCj{yz<7J?to8EVH$x~);R|T1{Ro;O7D&O7CKib8e-WROVB&}#(M*)A zpw?i;Yb(}x2z^bW^T{f(=Tlfe1<>BGH*W1mE3p^xXN| z3#@KG0pEL!K@kp|+&sD{sUpfL{R_^O(gt>~DOI}qZ+~@yWaF!in9Y>eRC=3o6Sj1% zBXWf)8X&>;2R?TIrJ$iaX=QO1{aqFkC<++y$XxwNcN}6%PTK|g#@Ekr95K?>${qdb zJ_EXc=FryA@6%dulOIQ0J~tQc+bSIPN+og1nuaw*x5J4kYb@9Eq8Iid)M~7<1QV6i zAKE4Tj$(6(K0I<}fB9jAZ@FmKb4aT0T{zPA)AF}oYa8pbIb1)Y&NOoBPFJx+Nh4`z zIw$!Q-Vbh2d%X4BSLSzP*64{|XiB=D{f z+e&6a)klU=-gg|Hz2~ z_}c6Sgs~{2QNY3;KUKYl;@Ro# zwA)@}PXFT-KwA(sn>EBDYrB3E(Nmep3|AwzFH_df7*uQ302bO=*$hRcY&M|5Kk$w@1+{}Bpf1?(yuC+o`3kns%HlL+ z7B>P0bL-+C2hLpLnfpKP?lFAs=Gac4k2YXQ@YB)`62cG@Q;j#!zwFg3bboxD6qPc~ zehYC*_d582&)<-Vf$U{EiElo->s5>ELY9#?D6;9{_zzqkFq*N>yRx47>V29~EKE(f3W_r$w?=Rppy1~lSbZRai z88?EGivtHt(XRt@guNC$KGUyO%}(v|9HztOfyX=MKS_e(wQY^A@7AcU*91xY`!Bz4 zOEU6;T@Yie-;pkqDM*siLqkojv`N?^7|`#6#ppAwO zIKCq|6e?*nM`0)M-JeUx_hSNZ#u;lrR+0-S!HSMxz5TT9?-uC2+7Rf(){YL9Le*Iz zlK|`qrs$=Ye#G>A^U6$5ZWw{gl4N1@IHYyVM_cgFJ0mnZb!;Ao0s#r&+}mu?X{B9H zo3_L99v~|7u`W{%{I#2ATV(*6124dPq8anmcor(-=We3!`FH4$N`B24i<%N`qOt=} zRU|gTl8R$b_)t-6D@Mjf&VnLkG!~t9!F08kC$?2G<4WP@7ylCOYk2FHoNXRtuQ}bk zUTcDskdQYG8*uIR^tec-R;WbjkWVX$(QeQN^#>WTI$#Zg_Bf% zUD(a7&FORBHXadl{XNNZz}Dy}TzJWI^UP(_h#KJQnT|yd5Zh~bBkCg3 zVqC0bnbc&UKpCOt8Cg6i?APcl4TXh(utLzOr@^>8SfohUH~B#tE1`M8fHB+M2$vLf z)|Pecsk`-_#Z;BWHIOx*9^nil zC>mq+a&DjJ4{!NiS4X-t+6ZnR7M-EVVtFZ~{X5yRcVvn@nqbNZBPvQ^v12Kj(z!qD zC&X0iB-5N|gX@yqMu|KZtSvk{Tsr@vbamdVh8Ap=MqW^@vw zy)kTCXL`(iK9`Bvk>(iBKWzun3>aUM^Op;e0T|s#v2wGk17lR;c)9tc0iJP{<{?K`!`+x{iEC8#JTkP5rgYA0JapJ*DIGXmsyx*kpoIO z1%1T5lSC`NADXpN`|%Wz2+l7XymbF8`w% zj2M(k7<8c_a*{51qeHwiZC1zibsiCy`EKY%P6pcpZgOcqK^2fdip4bYLK*Y!^`Kzy z{kU#h#E^kuPt&wI0S*$i`Rr$sr{G*^x>hLP9lEUT~e`a3UuO2)< zAdz&KXiU^rxe1jl0F(8xR;jE@x79pTF|=RJQ0q0Cn1JjMU2~@0>2d1!<+rPv`{*M? zFL8lVU2tnqVz~C+uveHc1d2d_PmwucM6sd8Bn>WaY#=g5QT<} zm1BRoaXTsSdD_U~vn15YXkB|I=@f#Q1Ot#1GO{)Q42v;VWoMeeSy3UfMIpzx8AE3# z6J^26R2|hEaz%=u>z>3p)q64>lT~h4U0PvjUiIjw!u;H5|I%UJps`y!43#n@ws(X6 zn^o#MY`oKR`mVML0AW%deko!@Ku&Kzm0$+wju_862F>Z&?ji z7F|q2qT4F%^no3v_U|4tj znXbLl+HscGegPLM0u5_WMrj>4Dd9o=p766;5%d0285~e*iIX;`eX+LM>Zf%#z@p~! zr>(t=!EOr`Ac-6pB&DpDN~%<92+|k4aoK)yLX)@U$naOvxxRhQLYP>hE%IA#&!hV0 z7%Pj+2v1Zj1oq5nD63=}M*!v+wIAVo%BZ?~ZGYw!+sNa7-Qcr-7m9C#8@n`uh-C=@ zkXjr0Q-iVfn+;v(`&aJuMe<>f2xU4^e$Kbjf*bOX(rO$WdySB4*Xc=XhR@AmcU~9o z!G_SHCF+Pj5?rMTicVi4>!IYm%M0qs<4)<7W=HqQvgSr(40OfSOqSTj)P?4W4yc(kd4!#wCjz*%1+9!jZh9Hgg2jc~6IrJy5^)Hn zYBn!T-(o5n1IFV7;b`qNTZFa`hNqt2N>)6+Yb6x)oYwJFGzg5o90q+-vGqfA0FRch zlQaCczk}Lee=2L}LenrhQ$bLLQ6z6)+bY>O!f#L(%$2}w$-Td^6y0<+*59x|YbK-< zzsjsRKa?9R?&s#jRqLK(S?0hgc?_Fr8j3W zVDgYPkBBnF|{o%#j$SdQh{Zr*ITPC@VcL?yG` z>@?92p$Ej2P*_N|=z|E1VYrxEw$}VEj0L)UFJgn2T;&i#sl>C#ZB9Buq7o?mRJTin zZpDhb$jy(kl(bdNn@1^O7vv-So1yEEF5|fV&yak z$C0B-1ObGkqNEk@(TL->%XydXmv03!h_A2|+8~aLBC%m3^#3ml2c$$|W={Q&TbXp9 z%UvFV_Qp07!*;D3isxVz-~d9PZ0L`O+LA2cPt26ca!8?R{52S;MjVtX^ADvz+lM^k zhEreDEB6V`GYJ22p%{<59_Y$^_E7b6IgAVTxN~l#pg~V+1TmzyUs?rxcSrO6+@^QV zJ>gUeC@0YUgA1P@4kT-(9BI5U2skpeq`kVoGx^yY+X7+dnQf=NWL6$8b+d@ zQW1@EoCnL{@B6R&65$>{!{I(ps=;OxlZu_1H(yVMDGeF-<}OEjJkEAh_eW0XoO3Fp zKcmragV$5oR^6#3PMMy}>MLAHQO>(+U%%ycGy)m?A6)b+YTS*#si zT1-gA7)S8j=~s(krZoE{4K%`h+qic4{_9w`*n`~k?@EM02IP`gu#u@T4IU)uE(94` zWv;mMi!4PO-n${^-q%`x+xk+~oJv!yh;{R;r9iY=L#>^zD;f^|m+2E*JdCsu7i45g z{OE9}roo>f^;8lG}kOn*v!f8%hCeY|8ji)c*K_j%sjD@8NwD^6Aw zlTN(n4g6|)d9}`eUTfsRXS%S;o|`jblOaNrymiwq*=HW-X87R)kd=(ibZ5MpY?B9< zwA%!|p=N2YooUmdK>{WFT&(2oS2w=z;mD97*VoA#I4E)@5S6+mKsaY z_HkXwB2z|uo<;TN>Sk4!Oh5Z~y5s*_7%HTOWr=+6-K1H)+iO&Rx{G#?Cgvc}KEa=o zxf@dKX|pnWT}%wa^4h6A!-)k$b4ly8hBHYTQ3P;H>cDIgJMAB?TX~mjp>c4t-aF|6 z&viMNIx7bw^oYNNM3tx)SUaHJYCGB9~%;l*<^Ya2dAYcd{6=~RjgR`iNf$t{S|0!OA zj(fzBOk_B-;9yxDnv87ECcE(?nM1d&{;Te;l-8k2RPRp-DSGTs>$`Uz+63ygmkB8X zF)|~AJWWQ6rN&{)U)$_3cDnP;yBO0e|H<>#X?M?&00Ep2~t=p2{3VoMhMUTeI^?RK7I+0xTw{5s#NZLtLXVyL&7zNt*Ew5 z>&PalF+N%;K5!9N_je7F&~VBI&P9c~*S*N@OCb&MzIb5w;**iY-h5r|^Bte|qg%;j zW&spBLabE4zat(a#OhhGGJ8#pA-P{tUWk-*s}0VqghIF4BLrh zw6r;GXdH%cXDIf@MmEd6J4m_8x1y%t;TH9ps{URjh!^Mjs5o5?>~5-_dfTY zb7tnuG|;46%s0)EGq7#87d&njz)W9>~oV~^L$#9TSd{_m^RVsbS7~NNL08Ip%b}Pji z(@UukqQnlJEIKM?dFhUbn$($TjZy&lGLaidO$!qs(5 z*!&ItlYqvgSGY9_RHc%Dw}~$2-O&6QfCfo0n+7g3nmxNq<7_F*6*?oJU|n6$d*MQICz(9L(HY|rDi2oV`>Cyb2{ zWjS)E!K;vp6Xv!j_|4}#uvm~v2G^>){$A_u%{(7>{zqp8ys;8i>G)w{ca(8LZ}$WT zBR`4t?|^uWYb@v;Lf(i<2fa~_PrOG_7w@Nkczv`ChSHMEM;ztR(CG$Zrrxf^L58k( zkl=XI7IM*ufszK;idTmpt1<16+!Fxhh{$aH89KfJe?4}5Zu=vVC3BnA#blp+^((~t zRF*9T08uT8z;Qzzau#^9Vp`T(5)q1BPDfmGbb|-DPWP{k(f6P=LI@% zxT#~eoO1dT-h3`{*%hh^E|opnX<#=0YsR(v(DF;je0Fef#Nk_VsCEW4c66brLC@lP39Eyd^;2_Bh z!z6%pJS;Ww0y|ZsOm|_ozUeQI&)9)5)@r-rXxYs!!{-Bj1kGS5j;Nio?mPU);`CQ#?ztT6aAl<6cg3L7zKL?!IC zp<-r0JoZh`$T@~YDR-D-$7B6YF}iADlz?9>nu1&2(hMQ=`D0qk>6@jY%heSLbbwrg zP5S=s>9=dCK-EN!_uFpQ+_$q3@n5!l zv+mZsnDxD!pnW26B^C*<-F=OM6a$(}#+-SXgdE(MCdtyb7ss5}kss?1=+X7bD_`41 zWvD_f4SNcHBgH?)cWWz5jTSUKS^AFB`6njosOq5%L=E5%&BhF8qL+O}G9ka<81S~t zIZ!N*k=5bS)9T1ccQr^8`WhS{AyTehZFua{QjXv0)$6I4;~A@tgjU~Kn#YztounbY zqX17%F1fZfRptNw%c%KwGVH=e{|l(!y*nh>A=Mp^fPYTv&o@f^MYzwr_;zQUclVyC z8F~z&rH^j4!ym_VWrx#Es%hPAUS<=U zonB8k{x6GqPp3!a4F>A^lvq*a_{s|stQER-D0d$%Zi*h?cvgiHZmZI2sY%!{pfDf{ zS07|%)@M-$dBeKiq7Fa~iU)y_YFxMn(YAH2?WAa=NrY$bygBUFeb`!fdU^|e9|9e!48YV z79+v?x3Dj7ou>}A)^@fHD@ichND|}{a*s*sHovwSJ(eu&;__poOwYNFd2>P)0 z=>1T?!%r^8S$vMaz)L8WUaODh6PIJz`X$p!$bZF zEiO)Kf`84FEPAEwdbRhgbl2?+!~yjy#57KYsv8T93FYQAP(Q53&AXE*fvVEo?&~uI7B@5C!*ad?+Ha z{$7$qu8cyhgd67rz1gz8f0Enz_vsv-@k0@I5oS#ONi$3$Ide#!&xd_|pVRd|KC(cy z;nCXdtE`AdL}=iSM+*LdMF~wgHFVlyEBk0c%v<|h4rWxs{9N7&?g_E9@CTjINEiuq z+Lg@E#yiwxVgLTrNh5bU`XCX=)??mPhR8nvkp&V8=DnH{)#Y|n0cvllcQZ_yU&b_#!FE- z!VAbtpwJ?I9EbzmH~T57s>&w*K>Hy}-<1-!DD-61^*VUx2}UYv)SfMFOD@HcLKZxi z3uwsESvW4h-?V`_uVBcE&Q;o7&8-@rVVM{XiV^(JQ$@i6SF@oBC+qtTHp%1nIw7xj zC>(&OhPr}gHdT~anr|uR zted$`o>i)jM2doNdSPc!R&Oj(!krHDLX7?uGcFxq zcA}~9hx9y#l%I-UF(|ZrkKCl5V;*Km$;jhX=d|m;#My1KvtB=h`JMOr2~8#y%CHMI z73N*xi~c(e{v_3`8wLJG|I^L)_kF!87N$)8QG`)u7dV-p?S67^ct^uO7~$ETQ)h%Y zhAV%_sSZ6h#Wyb$moN7rmT($6He-~BeoyAz|KSXlLL+BiEt)AkTyHJ#9tqp@84>Qh zp+J!za*vS>AHlR+YqhUFz-a=%B6q#6$h1^dTO|N6vBIFBfm`;EiQD-J4O*Gas{2u4 zxMR6!<`bDXza5&k%)4y_l*$&2OSQfXCn(dH+_=yZ=Bd}sK@xc0dj zK5)I@hR9QuBe=g>DCOg*PwHA zGP?A8cVwy?fEtB&c<&)@4tZkW-``qD_<>z@P(P0~6)J-ei?`)W@b-;-z|VVn!jxdyElVg`#{77GxGVN_o6vfeV0g$-Sr_EOX!t6DrmtQ4-U@5(FZx<`eNF`N zp9)kRS^KltKC++{Y!^dx>D3Mg_Mguiw5&OTYVFiG&Z>W7s3#)Han~$kwl`pc+ z@A6Gnr87vZ`+6b~XIIp*8HA);&A6-hm}KI%wm7Oo5nk_KD*x3EPl6Ogr(D6Sn5_=8iW%!NLsl zvfy*-dbG7#G%9+pZd<sD(68y|LIr0Y8((#_C%Jnm*dE@YVWNwZL}*2MUKK{cOu-5Mcsg#D&s1;8kTO zamiOXYtN4%+T%)hZjFK1*w7;d&0lV^bm;nDN3+fH{Ti8NE4CArEk6!`qJjW&-pA&V z_Ob42Ls=du4H}Ud%5|439QZZM(XBCZS9>y36LJgMG@p%Mv4gu%0i8kI?w>AKP!BVM90gb=VYE^`)o{7dCKZiue~$h>$y^%PX6|H1eWm<7B^V zOtoKtu_{#Oop}y?wFb;0IpN3(%`;+uZ@i`&fzC@=I-1XPe9pz#qw;lOVYiP(QDT;H z!Sa6Npq$Pb>8Ayw(RdV9v+KARt)QyGC`4k*c3wjcyeE=`v=QFwV-ex#q)(8TrVh(? z@CRuFnC{Yi8&+Uy$zBx=8m;n{)6=J>_Lm6zuG~d7E#57kLF#V`k#0~DP(5@AvQg2v zw12Z!LrjetKnCEi92qzreosD1D?8&M3Jici^RhO(P8#GwN+`TFbrEi1pS_7G!_K^m zqd`@1OKW-zzRC|Un3YSY7E8Ucx%mcn#U7@=mp5H^=hO=I`rx4waD86*XVG^xV2DO?Xlq1#6m(BaJs^QMs; z%ilxh+&mmrFU8)t_S-}5O7I}p!#cpeBIJl8tM)^sSpTp#O0EWFedxfPMTH48cxGFh zZs&nceQIa^QI^#85{p8`_q}h(srNeo3fE< zE5`EdIYLQr&p1sO$;%unj{5Gx5mQ}Opz6OtY%55P~E>w(&`M@NCIRcsfg+gYfGV_;IreUoE4iPBJ<%l9z4I$RJtk6R;nD%wT&Ku9O%JZok;QS{a#H1>;&IqHN|E6jt}qFjYs4fa*aej{ zVSC{?)Rv^}bt4tDe$qZ?=jpbj7JNca)u%nYT$w5PxKAq9?7*Fj&T)YT5GhTRSkQ{x zEr%|OT@dA5kQ(Qp(aRY>5p*rr(dhTRv8?s@2(*klr$z1}4^SUvO*he=as=hIaPAnz zy=?+5a>WWL=_;yhtWJgg8_2~eP#q1*DAudMw;&;K1&inh?ji+edh-jrvuXYwZ-jId zD%AmRF~-Cb810isI$JZ;5C`8K#&&;bc_Ks@fFP7_N4Gv*}yo z(0X0B9^2q*vPJ|n|JiFE+p!xWlSQZdk%_U3I`#ILV(H(~3Es}PSF+9ONy-aWj^~U~ zC8v6F^gq=vr=i-6c(e-nj)B{n+#f_ml@GJnOaP>dac4`&lIUmswrcA#g`$J1ykk9> zq?`80x3wZ^@e!lH=%Xr=Y0n%WkaE^Eu761c4&?qv zNa6FwtKz|FiEKXaeG+=On@ZiQ?l87!IIYnXKDIG-_u{oda3K4OWFPqpqyMyvZ~2Fj z>PQd|{!EE_!jnDn`owW5e%j3lc;9~bFthp{eb)**Qt={urSa|3@8jF)KrY`?{A{=g z!Xj(50TVNQAwu`o>z@4yOV^R~=6l~B1#B^oZLFI62zoaf=3}aSjxr>RGY+qge`hIG zz0j3Je-xR$h}>La4bpRQc-Y+QKjT7^p|J-oOEom*hJH&?GIDxGJa~uHc6qvSH~k*m zOYU^C6K_~yHUH-y+?|&F>jGuop=!=(=zW5+;*{RmO+y&ybkMV$3ZK8++8>vq5ZCRV z;heqIh+7aM1H@XxvlPg6s7Oonf2;y7trq>dd{1j%xYq`q+$?U&r8Yw zIr=B|M|oP0hGp6IZ(5k>>iyGGP;A$>6YB_8y^DBUjNclDG%QSM!?S#C+kbtAu%3gY z(nz5>5u`q-=~r|JU!;Q%VKtE|$+CLHF8w=_@&hM`(3BiO&QG^NU2dljsSW28$pDd# za079mXV8CWJ3g-nAP=H+L}%%`J7xhd9(-{y(9^E@sag_130@S?pXOn%#UT~;i&0fI zwQg6Ir@HwFCuSH~9xFXOaqxwXjEb8|vIGtKM_jb&hZG{q*}yOJL`*n$15Pcwmlu6dvXmc$a^0jJPz{M<;wZ{#kxo~=^2~P z$D+kE_KG-?&H9Bm#RNxn!S2`fCk!-p7;;#IfMMh>bVnYJ@EW|pJvyAOojw{SVMGK% zHaxwHb0McfApXL98KjvJ_A6?zYFc5cRFgFOt(wG@Zv^O{)@v-qwX~QaF8^40WWZ5j zzrnBNe_L*Tk#3_z0euvrv%=-c{t`$QKstbcd*D|K#sR(bFinB;J#Pmf)v0JnVU&t0 zgga&@A}=6d_bNwS7C28}^ax1brrky+Xo!`hcaN?eG|G0~C_dz(4z|*)(bR8a-1`c` z=T}mv*p-J;brbIsj!$nUL{4hSZs?!?9rKaQC-FGx7Kw}#{401n4{?O&0}9KLi6TYatC@15FWKf5_m&CXLC4AF}T zJ+Bvq-}egZG?D1gzmsiB`p#QkhKnIN7N>Mo`rn=``t1}6Zz4<-{ykl;WGML?D#kzt z)6T`o{B|Ov?-FaD*?PBZDN-`maJnrE8D7iCVX)~qMFPUJoL3Y3`f44WM5SNalz72F z8qn`L&LJ%5s|oTZq@#?`yJa6CmzQG(i>AqgKZ&D~W_i*0pj^K{f7vi(i|i4TPQHC< zUK8|>Ys&39kp6TifC13oyEc$VQT>z_P=G<*1lY=%=;}I7xDf2zdsiLFnirUWo@L?( zz%U*aM{cn#Xp@xmh^gI?V+@34Y6l&6NSFlJl0%z?V@^`QTH2^?x^b9tvSsP~o;jR5 z(Yw)CjO43gqE>yPDrizBLSFvb-#?s?)qgvn$HFGbmOPUyMg~#U$D^a8VMZ-9&g3Zc zt!{K4v~YcLwj??iVy{lZ_7uPy9wkZu-#*aL~ijMfd4e~ z!}spK;1l?qblS=OAy`k6SG!@Mtm(!7oJ9`)+oEK--2Sw(Lbbf7q6p@#7(#n<4DKW||F71|7j??b>l_o<{jj~P~X;T9(|S}spfowqra`20t#FKmp$6l$5mYd=l)_vGywQ^lj_*n<{uNvNTAv7n+f%CG{1)2ePgJoL0YbgO5kX za#lS+w&K>hH*WC|JAm)dAcIO0MRV^v$#X)?rps$vrBf^k2zkvj3vEeG@RrTidpY08CS6< zZ#h=(NCG6LJTAmb#3#(Fj{m)pVZNY0o|FCkHiapUm$=BX$L13i*NPsSmfF~({n9W-5dDcP>@IjhI}%JSq0_@H)(%HixU%Jy?<=o$ z;5V7qnjm&u7J|!QlV6KAIL@Um+J{MsJ3vlQqS<6;$mVxch-3Ji;3^E=O~hR}7bD%b zga5KX>nlNWA~a^S@;0WX&QNR8NYBiE=7BS>P!X@7 zw^dolcypi$?(phD>f3Q)wfn5EbGGilwo{)x)Oj%%rMP%=A$kw0T zs4_~~j5T#q(A{ku=;<-;%e^31L!rB-a|R_^WmG4>Z`N@L466bWkU~V4VH{|m_V_ho zk^Cvg%+)lBjJYn>`M~sR^(;+qQL#}}+9zMe9-f7a!N%N*_3~B+ zi5&r^!+&Tn_w_vT;`JWhZ=Tp^Uu-~OTRkCMo7AvaSCp%3mz-0c4QL-a+*0*9Nl)$f z(@zhJKTxI}A!r}`;1PLu8kwY|%s`8;gOjdtenT%x?M_G0SRz|8i^h)eUcIV_L3m|j z1n)-~H*j-Nbt?zzW&ioXKO$>GAtqDyvGNSL`(?t735GEVT^aa*ZV!2jp#vC*1|KQa zphYVquu0peZ*G-Ho;HYVs}9=PtIQo{7}du#M5Yc!0r|$>7USZi4KJFPG@W6ZaBO5w z(FZw90&1#uZoS%n!yD(9aWnt+X_lh|kNe=LELerjy(Z9b9Hi!zKe+~R8Lefw_v7P0 zw%LDBEJFv2CXkI|&T2zJMI=DJi*Z($0sfu!DO<=5&&!FLoj%h9x*>dzx zs|O#eX&SX>lNyC2jil=LoQy!p5EEFS#F+LR5yy9|hgI_3?p(Crwtt?42MlFLqpF7w zCs*1--u*En|F^CtLyw`)punO;L13$zdyhNROj93)s|U)6Svmb|KEs?zg8G48QcWy? z|NK`28b>!p?!7T8=QA8zlU>lwb*%kXG$9+P3mLL#9Z0b`W88p52X%;wrnH0=YrWFt zf7J@^y!kOeJ+G3XTEQ0(EsEwU3x&3n!bLB=c-ua0m<77exe#=`=*ra1LXCux5lS~n z0btS=7K|{#{?$@4az6X4WryqQq6<8@4YgLBSCPY@kF0CBOC> zeIyFTGXAR%`fHX{WO=7`WLL>U|VEp*EdXpGhg(vrZ#-C2M3s#8O0|NcF`xtas-!ou(DGE4or9)Xf z?OXTHZ98AuNbHucYPlTAuQ(c4yBTMy^J8y-cg4d~= zg10cqJ`6?`m8!3w6U8)oAN$k1tee@){qj07#R{a3FY4`}u!LrO?4i5xS7@=o*L+ z_QBN%yx1k=Y-G}7*VLojr?Dk7`k7A0G*WmIB~niX3VNPgRRUncKF-NHB-Nh=#EX)= z9A=_tc0Hv8PLy`TAOv7CK}(R5Ti}LTtG~eIRb5vBRl{Pu1UVQiv;c&dm_!}e#X+k<&WeIe+u9`gTW+?JKjMVtSS;hFxmTi z>kY}K^Go{?vJ5LgGMo|+V7H2kmCPkr#!s-H-M08LY3M$K32ao26d|jXHEb!B!CU*? zI~=0~K7~-BwRzwtYkM`mGmj?nf@{snd}$ph7k=Z&7n2I}>>792?fWsE&A9#(^of9w z54thOK!VWub{~~QPOULfb;km`L9WU8o0yt6`SNqNQY4{bnvb&;@||T#xxf99#R7>g zeWAe)6tuEM=7Bv6x8)x!a$1f*;GDnB94!!*PNK40YM^MbT*yDM$!`30yomhe_zF)WCK)N19BthUK*@C4QjS z;!j0UZ%l2ifOk>DY6a;Shh_F+?@>udpH1nhE;rp5H##bSyciD&85JNcv?dRLoEE4uT5E?_n8Y?T?JKo@`0z5aV2dz6Q`S&1RCM1GS9f*_K*ev zT?0`jGT_$;Q>V4l+w@_#$&HflLunl0mlHF9Q$ZgMXs;B5nj30snJDi4blY*W?Ok(L zwN7^*&x$XZJ|J?+KmK8`gr`LAa@=VcSBsKd82D(U+ZyesSlzs0Zqgm>8b%{Gnt;Y! zPh2+cgwfiwf+EdJhB$ z(WFcxKQAW5By+WxR(836VJ{C$tI-}yXjUw#N~*PZv{6LFY@7rK_TzFZ)YW$2NR84E zxy{jR+(dl-B!mdiU%b=&c%jd!iD5Td}SS?+DCOQZzluBq@LGV5;2z^Frmqja5yz+1o$3(vLz z&4mv=pjnI+X8%dIikcJMp|`qrnGYJcvNR|i~43T+&<(ntvI9-`Q??lDu@ z7lq!P?c*uClQsRukfGi9ZPcZ+S`T^V`9(rWK8C3#Wih)VqHvNEc&f#yriJ~qBO-Xl zEjSgNP9fwu6~Az)RKW5X8VZ_DBBW7AB&dV4I&T$^*Z+zR=i-5dVf7O^bcy~Tbpr@O ziMF@?yCgeU-@^-%imY3EpRVINpXViOz|b8{S^CYz3TktOq+PH=nl13SEUjiY z(R|;cimHZs)N6p=b|Qr)nCOB61C6#!IiOZ;z18|XDTIXQ;4L-B$Jth`Egl;1RGF$* zm?&X|@B0;8l>7cXI`;nf1GU38=Ezk?ElST>d1Sf-U%(rEuwB^wHi-|iBR&|%x8faK zLt<3~dQM8t=V9p)47WkmVIa4RUM=Ea{r$~nziEnRr@2n}G6nfQtBo7LQ#pp)`H`Fh z9pNag=xy`C_q_F>liSZGY(P#V)P5OKTyEn|d3+}$E|w2SK4m#`Lcr|p=pD1jGKs+8 z5k?WO(i2B5;oCRij#t}R?7EeG))2*cSjvl-`~v-q)dTjqIw3K9yyVZGTT?IUMz9s0 zq+`F-Hm@^dN>a%jhl%ulR;YkNPZ#}95}W9BB!P zd#91l6p$y4oJU|8HaGiM^^e%iR`9gNckVv^|60I85-fr~bbD5Tx4HcvV^H}QFtM3_ zBj6AsZsgEm+DW5v164ntz2n>>ijeE7Vj$)pr{+2j5{!K$3aS$u) z(CFgA^ao3e+|(>Yw&?2;+9#Fy<^D#ISXueyXqFWKiEv|W><^mfD{zyCc{dNdJIx$Z z!q;oOYS_>Lkj;&=1^(tl)ksY4ai#b3^#{jx?}fP*sy6kC(FOxsJ*2uxUFY|wGNCyK zrBpd6+Akv}-y@PRicENwTlPm7D*av~?LSN@T%>I{xT}|Glu!aYMZ#c^=$2HuEB~5Y zqdza{ATnEycuSPgx|tA3i+;8h6Ds?vl{|&=D}g(Gqe~0n2tAtgG6ivH)#(eV?p7xL zCeW2nB~W`J%}VMt!zD*OUiizf4@*2btQ7&=f$!P$Ak;Qt>((Rk!}F3!_7KGHlyEYd zd$33ivijxn53ad7CPf)`TMhE`yW=-{x&b~UVNWp;WYNbq1!8JgMb5c%+^F=8eyv+m zPOMPyw@KJ|?H^&`7uDHGS$=f!3dMu=ZrcJREGsMbVOb6>6wYFUUSH$8fdt7?ds>Oo>aKS@wD30c5@P5pQAQi?=W?Y0BUa`NpW%D;(tmf)EF&P zIXYy8tycUH`>O$xuY$926V3Lcb0Lu<9d<)XA` z$e5&K0|eTiuSnjXuWiA;v!tllmQx;hT3BJjbyhoH&sC|L!Ya@2SZa1pX9zQYbg1H z{4RdfWm+gOHE2jNAYqb+l#z^lB1G;X1sDpWWG^2jZ(L-o+DnG93egrkJ7)zI#)q3-JrcH~S9rI&}L*jGWmc3Yg$o*&~Ob8&{!?kKBrf|2lvYHG0H|tkXhs)4I zD*MG&cX20pU<~Aq$GNnh<!A+?PSXgUsUz}f{XR1K)L97R>#R*(g*s;Tqq@a`eDF7|;Y0lie|-hOrGYDN z{AzVwdsgKt8vddUh-`bPt21uqxBHYCSPe|+f-5K3h~eG!Y1TJHeI0sZtNV)U593r9 zked<`(=I6oWthbQxggyCBxuuKSlh_BVseh#dyD?}!Vr^Kkh_M@Sx6nBbo>sv45^ zx+(CDA5+8mUVo$ozv7!MxA;b=GX)mu6#9)uQTg)Clc(=mKjjlAt2?2XO@{5eB_7g^ zb_MiSyBP;vmi=lTyYE~MeD=3n?+c;7r#kj^P~BL}eIs5!@5qu_o1f~2sxX)CHadhS zyKnoJss*$r4d7rSlh~Vi3!eR-`pp-G?t?l<_a)U*F}-R8bVcKXQQj(e1tGFaqiQ^7 z3X+CZ#k@s(2l##wtp5HQGeoYUX6X0*RJLfncU<`~8(0|`?mvi1prqUDYB+sCb!6ms+2oam;GmMl<38}vpZ`b_VM978RMdZ+ zlm}LlDvYty`(fQD@X4YuI1Ju#hoh+WUaINzIW$t*jy7EHFFL23t`IH|wg<*H0L58B zrncl0n|wfRsD%+>2~}-U;{bK}l36o1+yV>K&x3n}b}PI}`l?NyijtdhwaK@w^ovc; zo()!=GQIC2v_0|8lWlO{Ku=*tZ;zi+g2mzjfqmQqT@2|%*DQV!D0piqx5Qh{UDk}sCR01+jCRk`_>h{#9; z+Ek{SrIoHhe^_3>ug-qLo?^i+V$#NUt=Dc_?08HOqe3xTYLr}PQ&v>GHmRwe)Lu!# z_mM-y!TqrI+2DT0S*h4nxJD1&b!5IzJmy!+j;lBA)`NtkXuB>2;@z!Oq%>K7ATi^AD>qy>%^RXF-0`JZg#Rlc40 z{z#FLjfW^rRcX_eUs@&8ed>5gLPlyoMEZ{K zqk6koRZhl4?+c_Z-$#r&wx2%xI2A3Xc|w2r0JC6{ z!pXUT`F~(zG4S8a2HnjKdKTV%8u48C)Ty5)yeay#6cE~JBMLC-Hp1o*uKO!Ov`Rn9 z!EEbrTF0A|Y`R*hy4(6iWi-PIR9S#Si~t<<0;4rCeeE7zsGzEz;(yAD>pB7Yuq+V( z^gY?{9bf@;h3cb?jDY6*b6bdb<9apsi31bWXP+?@x24iEHPEV6Xh&R5Mf3NVu4@i6 zM8{Pbaath#EP*=rv&Wsz);@)(kdm~(%!w5m#zHsLK61lN6_S3O(0 zj#e4mF|^D*25YKo*whc(%C{pA2*|YuwhLipvf<*G$8a3m<;R~YiTHe6=-)@oQ>nS~ zlI2bPVeQ�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 Mn*YEn@7hHC2R1v4QUCw| literal 0 HcmV?d00001 diff --git a/public/bukti/1777990019.png b/public/bukti/1777990019.png new file mode 100644 index 0000000000000000000000000000000000000000..9e436484b4ffa61150ede2543251e6d96eb0b02f GIT binary patch literal 377610 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


nkBB~d0&ZpDqv17;D(Rhm} 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%0DVFDSF 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

+sc-f+Ps@W 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 U*3Uy4pETAy$6DTS{zKlM)ekli-g`0 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

m4CN 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≺+NN^UmNI2udTj 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

3zW$Igs7`aJ!^uQXT$y_3k8*Pv9)@y2(Q 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 literal 0 HcmV?d00001 diff --git a/public/foto_rumah/1776563830.png b/public/foto_rumah/1776563830.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a91ba620dd5d7ff5d6c5ea846431a7105816b5 GIT binary patch literal 21048 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 <~yZ;M$}iA-fr3S*G_90YSXluo=)5ueXWX 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 G?7sjCrStCq literal 0 HcmV?d00001 diff --git a/public/foto_rumah/1776564363.jpeg b/public/foto_rumah/1776564363.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..71485712b72081674c6e6129c2a71032e19485d5 GIT binary patch literal 164414 zcmeFZcTg1H8a6mc63LRIARrl)992ZJCF5vthy4`>1_8wk;)5lz=QG~ep{;lh;{6$RR2sJUfKHt3F z*#X`FLx4Kq>EHXmzP=XsYyd#^1OOn6|96<(X8-{G0RUje|2vHLD*! z0Ga?Oz#brWt%(C303HIQ|4ai^0E9RG%HJd5wGfdI{gs;}B*Y|SH*eh{yGcfNi-MZs z7C99;85t!lB^5Od4K2+riraLzY3QzXn!kk*{LM*7bn`kR4LKS4b?E<1`O^lVy-E0v z5kA(Gy>Np>9#rU6`6Oh8CXPC`aXMoe^r zjsS3jkcgO;g!DEy9X-QCgPV7i4ULRnCcqOh;-21FRiiu-QYNNvE5{ZYnIxZjCACY- z*!lP-XIIyd@v4MZy^Pm-iu0_BUS1B_?SV)#{w1KX?EI;q{Hs64C-51FpzzKC`XJ+LOn9<#iKR zs)V801%GnEZg#r4FmEfB@XSCv`NfNW_+O-^jt$ccB*^7p7{3)h;URLM7ygJHb+iJd z={*j3fQxxMS*hQ05Uo7jg%h2=Ii>Um0A>O!>0sb(J$Lx{6k{FWN7daoJ2Ki{^ibac z*h+54U21GeyE~v=bwD!{rJ~rzN-#)ha0q6exvs_w*3J>5@Xqn@plTQGWdUUCd>$$l zY}EYXdiQ7b(?0;beL*d3gz9E`?k)vLuKdezo%fLjpS=u+J2K(#{p? zb?Z`xwbI2nR>$s}2>65ZgWM3)wcm>_U7pw{e*g^eICn{f8b|VE)xqFw=~?hzz?5~r zYicxy$y~~`k|b4besX2c56QugH0vJB_eoFgr%RPz<-w+AtHMr7FA=qQRbeZvTfj*0 zrZs!o0JS?~Vi-^*RF>ECS(TKEU&V-DsHj~tbtmA%;&emztseYsb?=Za0~ z_Z_~^1L4~(uHyUyTDuvrD)GZ2k@*h9j5CKbIj<+n zQ>|V*nwbv{7Z<-JrOlWc#`q@6-xd(PQ&!W}TqAv!2OTvt zOl(-1iBQ{T7*qs?5bI_M<|D&IEMq;;V?W+;{+tJUru!x*y`Q{0E}c{3%8?3sv#R=S zR>{q3N#2uQjMC4Fib{{dza;JtV7Dai58x^E%N&oDg1W{|qsY;=?l3-t|JnJSu@JfH zbDa9lo=2mZuCPgKu+?zRsHaYbzuu%@WGUoAK294qI_Rw-O03CV zZuvx{wtn@!>3ZfZb6W!=iMvq`tj?O-%UpJO4+y|s5Iv^{bybiYP{52LRpZ#Z)6rhh zosF!@T{e>=!9LTKw4ZEG1)?8SV1mMpDBl?a#k?fl84a-C9}=P|JPkJx!7*E-MNiFz zzJEV*9d5eYS#L)EiZZ>sg&aTN%mEhF%m@?qWuP%s<})!Kh+;Ok<&E>81V8EJ&HQ@f zT;1jkUapFR=XFZIV}*?`y@z7uNz(U(r%P01FW)f5={_(ntcOZum>XfC-B^wK{Lag- zs9<#TGc*T>g`}@>Rz7mxc((7O#JI-qYP}d)v6QS5mwq)Z*TWfFI~+EO@!K-znXrW2 z_SR6qmA0Vri>O&uRV7~PqT)>1moe^-G}&3PFpM665q)p`)SeuD4=0HWrjsb{MYA*%xo&X9_+Qbx|Mp0-Pam{hP&>;Hs6aKeW;gIa5#RQFCoO8FD zDZPG}1%1O8yV~V`7#rAmn8RD>UFsIU%lDIXc+cX0I{p7?B0a2aD5*OuZ{CDd;w*WDXZV@(mI2Vo0g=3&RJ7XTB!Pi z&LhG(Z2E0dyX+ED5gFX?M}-q3h1mrkrhmVVo6*d^JJNagF5u(G8+W;Gehj@=Tx|YO$K+_h9DenMl=c<_E8@Mng_OuMlT(ios9GNIH98V zLn0lXnaX~p7CWOw3aez^*R?S!;`4 zZv6w$Oz8{q&v}!;8n1tpmVWT@tTMAjTkguD?;=fQJ43VvBBfqZsxs}@GJx{W^!vsTMjG&86>0Y6+cE%{tsjQwcB+si+=U6&whUX@3^;pP{<#c^07L* z7M+vVh%+-9HE8SBTG9gmNF#TQz)4BV#DNmT46%H#M=lPlGT6#XQzM>U z^|ELi;+hLsmS*+=%0%ohU_4=iC3%RbtnslJx#moIP&T(I14nkhz{d}NjrOkw`xl0g z0LWmCNcB5j zK?$52iz_5{N(Jmy@Kp1~^9?-D#?Jm%S!Q35NVNBWZe9V9P9;lB0RQ-reEbb2`}d^Lwsp9! zmXqdEyy-Wb)GigMhll%?#`!cz!C)_9O1icIU*z}N_aw)pzI1fL^k=6M6A(y{SHAo+ zlSKJGVOtz^@D$1uiajl(b;-gjUBG`7S&%?Yl9HBg+Db%vg4vd8Xh!ykr|Y?#2_2pZ zBxmfY*#s^A0Sx}WCFN|L@0KVnoql8=H)MK?wcGPY+*P*iFV@{V8=`*ze*m=kwwX$U z3=llkfN*J}YNdQt2NXdb90NZJky87%siUaEyI;-Oe-!G;+ zOWh=KQTHqa1;lF0q7rtw_dgM8`RBrwTh2JeWJyB-Kv7;#i1E5y0Ylq@ypy&29{`$h z(B-59WWjf@a_rEOCkwhuDB85gWccHOthYA{_>;Q1pQae!>(%?ieKt$F8*HfYQ|mH! ztWJtWktAnse&cw&+xoSseVa8P1uD~+0SEy+`aL-@{_3zMpvI5WVx#nZdau{( zy;25ye*h!K7llu!1d-{<1p zD>w}l3QC$d{4mjRtjG157|_SOS-|(cq@bh@6m=1$ob!|Qu=VH77(|(C(Yk6xj<+UG z9S<1x-`ak9`9b1E>|(A44jz1C&{%$YBv8Twd=Q^XoK=$&UGLnB%~VH z=!dDOlw2Rg+hd`jKA?>p2}D?NLe>1)&H z<7?88dH8CLeNH>39G1}(>qFNXGGIR=-jhzk8jvu7eRR9w4`8Z)Ho+`tEEOzWIW-uI zcq(gQm-n>+i(+MZ*uJLrPRpBTrGIW2e#R*WAPA^QSpVO-w!|jew0-99>^Am%+en#C zK&lKCBr6(o<9$2tj*p=c?a`u-W4?^T>iZzG-K}32RsPhw7X@yX5AnpmN2?k|sluB( zJc=N&b(>Aze1^OJ|L{zzOXV-m=0%wS_QwncY7b1qsuWB|YjzEN{p#zrRRg7G;Z+ky zz`GI#ueA~{-7b|is#j#z$XPelE-qw@)D|%7k}DTCg#{=83OAS*T&Hy#Y)bLs4J~ar zRuoC-8k#Sbzr}+yv{tY|Jo@>lwM%(b12SLQyEo(E96?7bUkmX>I<`3v>B1F5qo!=2 zg9(BllV>TP2RfxRBb|WC+sukLetr>B{EQER7H6=i4avHTnC0)k(nmAZ&*4Q`_I&)c z45tK&y`vkFkI}hhV1)xq9CSHz#2Vrg^g|DL9D6k}f)zLNu;*K4Yhc#4(hFS?tH>%1 zlF{C*cgXCv&&x@%p?>AI|8b{xi8SkZxpVLD$W)b`qwI0JbYu?sA}rFv)*9lEof^cX zIf_>0I%=J2;gXRj&^^3o)z&lJyx$+FFFGE7*A@{jBj2M@r*H>rJA!+a-a3{0{E%hE zj_#R()jl>_xxJk^Wmb-3cmB5# zaQV2t$3=d`ly;+d+vmN!ST;UU_CyM$Lv#yIH9t&=L(4Jfx8Cuy2F~}JQp`nKTMt^8 zHRAj=5CUgk}8@(JrIg-lSA? zr{o*-)BC#W2qPq)Q*0qAs1+_d>dz4tKEAXbLIBATGbs;#6;OY6owz%pTp)lnHk;B> zeeSlN$O1b6aU6;scv_nbg7N035t4uDa*G!vDoN3LnUeg?DMjhpG#X0wq@lKStB(^E z^mMS@Y6jIXwtj}q#(8?t?|c5$sI}k>4os4tmQecAUS5dkrZCih0bTy~D{wERPv`4o znY`A;)|P8szHfU>Vv@@Zap01=!5o3FBc=W5g}sg@FG~2@F7RLIuDPGEflS$B!Q|b* z$D`sKAqZn&j8UTN!+*@O=-+5MWRo;42uZdVGOIFeD)TS#_Zy3CynWaA&N0yaB>(ld zyc7oPhm%89c6V@~TpBljh4a2e$&BJ0Nox%&{?aeJ)eL`DKdaOd$Sumk-5x=7KlS)` z!_?5IWJZY{{`KPPF@}j1bpx}(Wsy4L`dnIJ#MKh#k427W#3#oI*AD^uQfm8lFhWh4 zw3ML>)R@VOK_D6pcE*fU95<=Ej3z9nj3;5^PdG|^_Ng5-Fw)VJ5n%0-y}9BadVA;XV!Kkw*7t%9opg-L=61OhS}SevVhad{ z`kJqDlJ?p^S?Hps4^p@>L$76?(LYj<%Fb(=`z!4aVBg}>xVWQX^wFZ0;Bo+H9$Xbn zU=bC*yWxr4ngV^DN|rpSS<22-805+S2$xf%yjolFWMMH63a;mQVr%Khh(TVwBZzU*NGIGHJ)^UNPAuWY0|IV!I1$|(?#c^OHz26-|#7sw2M#nl#t-? zZ7`!ilQd>)P%20Fv|&ceZP~eoO=5Z|Wo#b-j82@l=2;1ty&(pAw8yr2TwcaBaLK*r zfftLwo8(xyDl}*3r-T}l5t(>v3eJaVOvnCg+YUH5aSVCTD9;$PF$zzAV58e#+;e{I zAX3-R-{eflG7KLnsnrzJaY?Tntc9{lWziM3(rW%j4NtC$R3MY?m%~UN?z;0yILhq+ zuC}Fu*4KwUyMoJIg+Qldg&fb%q=w-sGSGBKSjO9qwQoPG9ptqggR)0U?%|=;sX8t5 z>h!3FkDvP*H2Xh_tOTtR5wy{$+n8-KmSR$rAO+i!UAfr|eiv&{9a>MQhu2M>k6fY3 zR#4rgkdGR>i#kCsb|7!4%kn%R3X)snMzIJq-Rbbu*)CyrQ^p4CEFDU>ObA{StDA0z zw+YWoM4tiubu7N{`#&5M6`S|z^pT=|rB|AA_W(2d^IYbTr#+pD{J7F9gJ5Q`DkE)v zaU36nGrjzvV8xwMT!iroWagzJlpSW6NNMCC(|;Eemwr_kXk8I#kEubm#Kk0W>!{ZA zrUm4l-8)Z^Pdy5L^f}7nrL~K#N4^_vlVl|8k=_f7lEPoJ&D0rC%4p>Qfv$7sHtlSypI(S-LKuXS0%~x#fd(;w)$D_T-+f${jr=c#Frm;nl2@~e7o6zH= z#%uu#4w2#5ys`y_HT8})TbuitmuZb~w@d1#nUk`$ooQ@-JqxQ4p$064UxBZ5Zb@^2 zJnDj$cWg$WOH+mq+?ZhY2k?FL51_32R8Ff@A(?L5lF8B zS7A}Xr0T+$(xA98rt4}9+ab{N=)+-t&oQje_fh7=iKR9czS$QIQBq8a%yt*rbn^bv zG^CDv^2FVMdAslG&cuaUJF@1==F|B2UF5v^2wz-4&4C;dZ6}SISKUrV=Os;W^arWU zca^oj9-)%kYj(y;40NSkXY{69ov+=CR8dF4Uxki!aq>0ATKQ7)p3#2ClE)df-^LnT z2hR2Cfq_M+KY;w4oX=GX)7#sOmt|?RhMdDKb2>s%yJFjTB`3{SK8sc3i98#n?*W2@!|)H`s04z&|>O)Ap&`gr81$ z25TS2a?sh}wf>#STcTR74+4K4cRl{DTK?by_&QtmmzR;NPL``HCBz>ACkKD(_mxY9 zJKs~@Z$HS)xfqu%9P`HS%W$Za@D7{QIFLFE5eWVak({;ziZ2FOKX6s;DH+Jc@sYNAcvtIyOI>fNJ`Va z-^`2i_TgsgU|?7H!>lrwHoyx&?W}V3)x)AagE_H^88!i~115LoIj)4a zyTj}X!u%!jNf3INPQV01GCqis(x7OMG75asM>5ML-mC8-Ft>c?4V`x6>N&G^Ybo|I zKW`D&v~<%KXFS|*BCqmbcpE*v(APAjo4-DXakp4o}e# zm~#J6=~($)_nWr8!;8HK4nF}0e#CYhO!=U7M`Ol0U5#z$x(6r_$?CH~(d1pWNw&63 z!f;J4!tZ3&a*!O`@0=5s-b}9bqN(7R3vilTB5Oe4J=jyfI<&VKLN14wuDP$eI((|O zUy9Pf@77dczf;J?wA#9giHPM$ul~p>P4~6a<3n||>ShY47{WDe&WLz;Gwe(9Yl~h* zrHD7duj1FT=sjeoEZTa;0d@FiC z*;Pw@iH?%hlmmgNRs;6k#X3vXRa7ahCJqhS`ijGA6Q57E!PU?TSwq`g4$DdwLKj4( zsxrTF{VxhHwRBe7VWKP^q=Yr42G0(CeP92adGPV-aVOVTsH>XJbwJYI)|j=ajLZW;kAHTDxB6 zfW(l9>>E9f!JI%s0O)fEd&%MV&KpmLO-yQd!5K~FH;K#nMdzVxk1%HP&SS>Yj!q}R zdv?H}-pzGb(K1y+qS|RM3s=0q6#-Gqi;@wS*oQh42kKDo4<>|=>ISVyhgUVb_qmb5 z=~nA>JiUPmopo@{ry@gvZ}2VEz9srwWfD5};kbf(Ik_o_7D0!?q7;{}$@}0b9!oYL zzOVymzI251bm4X@$D!2>W{W9BxqL}-!v~o~{W!>1A{)C~&duXbJQidH22CmvO4@<; zoyPPjXm9CpY5wu+&w#o>bIu|CCugCvT|K9AyHJ24i8P`)-DPXLe}6){p2Ljya6<7` z?=)dS99tr@N~hIVO2Rk(!R!)YPw9%tzar1pEXu~L`13PiRV}FGulo&tDT5EeGe}eQXakb3 zIzcMQz5?LHo!$4V>sncr%+%_L>C_GaRbtpKVJ*C8V(6|dGUVx#Huwk7(Gki1B|;Uxf^}m2BY_VwHS%=%C};xy?&>WsLy&vb>TCXWl0Kiz zekrjp6DF2wSg%cdbcmuMa5Xl)Ixi_P#Y@SZoz#GN*OK3JdzQ(E0WK7%z4S_IK&)%; zl34Qn?MEI|Ok;3=x*g@cIeJ`v5SwkswksaxJ2P9g`^olmk!>YIQD`ED%BKx&8S^%DI^YE;P) z{s0#L*Sc1koD_l~Y2(IG+Ntj^-) z8xF30tBN;8i;A|v8AeF)G1Xq?v%m*yVRzIeNo6bd5d3Ti^Ss;cf@OlCWah<}^e z*8l=|e<~7aS&R5Exjo8e{QLH9j28t0PLXv5A)7}d=yO*3U3pq&)u>z97NpboH?pmq)j*U4>UHygLT zeQX_A4PYA-SWtTe`C+}~%Aw+k@v{!}N^`23W8vsFC6Nb}#l8NKn+wa46}dmlj-*;U z6>q6Bhg9QPR75LNils*fY&HcuDOcufG(EjN-@!HIw)r$Et(sMPqGX8`*IeqQ_cUx< zY-T+C&LVhVCcWn)2qJnrFU%%Vw#*FlJG9P7<)s%A#%r$1cJfDS zgNdZ^o0dA($})0aOCFLD87>paMZB9_(6$B*3f1dXJ~ENBTR8Qm$az)+~3a{t*(Uzq>Io^yyuLI+f_KnK^;4 zCC+c=l=Dyn$D zjaPfRg$`D&x`Jko1!PAdVR?;kRUWUKyT>#EVX|Qa?8X#q4@N86P4q+=d|#BV5S5oV zOkg#hiIefTz(H20HA-32Wn6UFTSblPvL!9sKVLSOSV4Ch)iseXvU78@@+GUi>^(l6 zYx0YTaJNA-=Hz(OLwS*``-Z?1>EcH1mnCTVs4UzxJKBWg{g$B~4;%t}+Lv){+>FkOc&hSo_?9}TU!v$GeELxXh>GSIPfE}Hnws$fmW3w{p`?x(sFCNtaV zduXt1f2p)qD+xDWOU=~LGcu6G-TExVhX5>6z&>MG$S2uVtefKrJ%X{zc9oz@)3h8( z=}(Rh?g^Nl^J3mi3!9*sa|iFtGY@vFr2rzndk&*m=}K5IXp4JRwsSOv?#GStnted9 zi2)hcNvql$Ug(v?tCT_2LEhEv#WZ+`gy#|d4}gF?)Gg5loMD3WIcWsRM>R}C^Yh_4 zvcKK742nF?Ds&$5zkC0(0KS;Me?PCd2vh=E$t^30$|gft@ETSq#eueoIEn7x*4H1{ z^6ytAoYmOf^4e&BkZv!sIG27~HsBV`#J~r-qQ_b7zpI81|M~dvp7uK%9@A@i?d%h9 zOoRH8>>Jl*^=A_q z4#v+>azoGL$2>|ybk{cg0Gy%udMX?#Ns9`->^Tr7mpsREHJ?F9b?(4~_xLDTpv&^x z_ut>q@H%-@y&^92I4DyGf@f6%$FLBS{JkqSi+hpdQt&mI`k12kqwfA`gB|!ieaSD0 znK_-D_-WDF)X!3cpw|5(BUAz=weI&#**ZxXg`7x!E{B6*eFNy!9?W~ydnchW71qFC z)6f0V@#V`R=-w$HF!p_@?2Ba^?DyeJZ>KwK4-vg?VS&Mqs3lZ&cM0nf?N zcVD=zr}>w)C+ww04s8&UcV24Y>AtqiY>J)=ETCQGl^$!V8?eum!ZMD(Hdv?}49Ubep&;X-lmAu z82^rNpau&m|HsL_MkS2d=aph4s(*;D1max~Ru#ZUhZ0i{ERWsw_U1Hy!X$^#q&KKfjXeCZ2T8&MAho6oa@CTFyuD4H_LW&@LH-oLg`bmzgxKa@Z}L*`(j~0)IJXh25SLS^gMh=hY;z#yeB+9&o*@rh#tsrNfIQ+%K{pcM0`A|WEukpU5HN8eUXnMH=IXC z(j{h9`Gck0e%TrLJ`r$ z%(3*qQ&0{+3In_l&t}vg6n!Q!h8tHl-^x;%iZ zNyO;%^(uD@94mUJZy{Kwk3Vi!QankTcph9(dOtU+Y!~+A6h$++3I?u=>#RG!d$L^B z`?^WT(pqa%aKn6ZZcAe|KM-z8;+*7`wpaiQo}GbVng^?6*_4c>+-sWTnO_!&I9^Xu z3t0SR=OnYIVbzF4m zmt8DVtwsI8?KL#uV5iq?qK+Gud9Q=|ZIyQ3~#_^&$#pvE*yBMQq9gpuF z3Pw=R&-nvL_Vy!$H&3WF^F)m0GZ#w*3;UsHEf+zd{8e_9rT2ARGTv`v&pZiX#>uWL zvGlbP2JKQ1f&9W(5TA-j!cKRdX#Y^QNks{m(8b-`|1lv=*|kr}+d`XAQY^a?C}hbk z(d$>O<7qz?2gjn7yvtSC~n43%*!_uZ7EDV=lCgn3?FvFJ*cFHVXnz9L$ zpoVrb&UeavJ&bG1n(3i5c*&Q90R zkXbwhg=1x$Y@x_jLmVn2307FWr4U$6r(BI(#SFTsFO?L?vuqjMM2qy^NKl&JWM(xDVrxx51t| z)Yf;~)q0NkX_sN9gOOjs+q=}k8^zZ>O#?mMaJnxUX1*A^#$L0S8}_8F1cv4vr6nhR zeG4D;nzmJRNAW2FHTiYLQp!?$<}hRCfWYZk2|dWREnqKnsN26AH7Z8~(|;5$ukT!RiP8H{pNH^ZyGyg z{NBmD>)|qSX*^Kd>LyPqL$k1i0cPAYlSJ_}p&J`MzWu_~DJ2^E52ua(VZDm2Y#fh) zD%$5?9ZK+@{_*w4$0I3vOaFhmNd`6KhuTFS^?wuo*F66v#eciP|1U?1$`UvFs%Ohu zbGlE&NdoBk%%UC2&92u7c)kZ-{V;w6UnTicWr%9oeh8kY^<&Xv4Cv*F=w;sGa437X z{;y>V`oKheQ&4Xa*y-zSJk<{{|I2$?{_M~u^tYj=%*uqRPO@Z&a#%JH5)u0ghU6tZ;%p*3F3SDk{G>NT96^;Mh7w!D)UV!aB z!XVY7u8GEczt)NpYZX+a_bI4 zVOa~L+H5vYwt88V!AuE^QeED}JTqevoX4+gfbn)_)>b%XP*C@co!8%Cc!lIA^Pc{9 zSSHO%kIVc{jNi%1Lf^P9nFQNSlZ>3tUOLdYY?H*~Af>m0e;2}vi_QW&vlYjT#!{dv zeU91cimATgZ@*hN$=_Ab?NE|(lwnZ`-6iEVpML|}2Tq(i*Is{<8^=+mKrEk+nxAB# zl50D1wm6hpw$-c~hd@>boB;ozjX4>F#*%k38aEc@nyNMr4_^D#H=2A*9DDY2?B0?q8|(St@P#RuyvJ3oM&%*cNB8?iRj(~_o#K& zX8*(9@5?77jpeg(xgV6CouD;bg_J)^qB5D${<-n+o5aKRY6QHQZ5r3JhklP0K`GJt zhSv^zN2}Q24u1*{;7}Jj*}Ia;bjfy1sVbHeEOxzP#OxAI zNT>47!BdX-oVyORCD$D;2LIk+v;UJ%xRH+S-(^EM3g09n42O%(3#2xI0$@2Rqc`wX zW{$?@x6LujvUkM0alrC(hWvtY#g0s`+Z}g!`i=ru`M?s*?RAHBV!}} zqjgu<4va^NFrJM=egu1RQyrb{&UA@CVAqHty>LnOx-9JWUK5v;dh>ko-LbTpolUx zR@-qWxlOg5*0AuT`_+>zYt=Z1nA>UxYjqB?>|t~P{2O9A#lPr7rJujft~M=Wn`N8k z(IwY?I<*u4m+pC7N?@TYE%JGj_KB-PdV-=s+tCcb=Bb((w5Q2#Z6`9vOyf>3qVU}> z!^1Czjkr#+kd|NT0qg5VK|!0s&h&|j^>GU`KW|}--H@?-YJD413AA>0v{W9R*qV@J z%&uJu;zGLIug2{8WzA46o43p}A4M7F--IosN(D7ZBnSUmD<}uenYt1!G3qZ|aqO#_ z@<}Kwfk-_sLm-}da1!d;49W6bPl*s6>c}p|`&CYyo`Yw3mLDc4S;5gh@j>aHnS@ba zp51MyrAfTK3(jwvUPGD6n|8<&bO};@QYLK|B_)18*GA@xE)%xw|g)l`h7iTq9J3 zt%JPq=yCCZ-p=(84bq$X*&Jg>n>;+)pY8NK5KXI|p4Vju2Cu=XZVpFm+uj3-+LI(q z*0$Dfog;TI<#DXH7gcm5_Hay=JayAW+iX0=g8A%xFc;PZAjZQAcr{aAgx`ub(WHU` zLv+apm&S6Wo_nGV&C61`X$K(4T!-n1(I%?LhK;~k8ZSzwA{W20S^B{omyavO7*^?a zGkeH^nx&pMvIxQ7oV3T~RoOYIW;0V!-$Ar2TsddMVa)otxQ%+K9EF;N<~ed8GX<6+ z8!Nl%2zg%Y06Yjs=#Az!Ica|mKRI|Swhe!U!?ADn8V<-C zNicGIK26wWLFq4F!G7b@SG3JTKhwn~87S9(?Wz1!(e5D)kDy~*=jHjGeNoS_ zP@!-#f9|t$?7LoYx7r+6H9uGmy`BL5`3Lk%;*)9H!t#b;U5quVUe&AK*r>yZyunoe z+YhZiO@O#`dK)w8J%8CorPHGkkpv)jll7PE&kpps*|fR!dZW#0!Q8y4+=t-;PVsd8 z2yFv=DU;16A}Ht-y8)KcL1^!g zm|H7sBEZ%+14J3ZpAN(m)y;NOl$VTxWnhMHn#-Nb4!_Ut<=THx_4)%?J`Wy_mr^Ac zl$1_vgm7k#72ii)DQ;wsB2rlRO3I_OQoY1-JgK~)B==BC*GnN4d~VOILh;_u-E2CL zsLVmV+)`8n9{)+0eG>9beo7!W{KlEoh)l9K#q#}GUiU+PhGQ*(ma@~c#-HbOklQ&0gNr=rdC`U(3})RFnMs z4(3=^mf7_R$b*eNsECm)L@%<<4Xxlds}9;`kn7v2PU?mx0`<2u ztomGoDuFmWWYpL|x)P4Tq`E(NwnugQxx?ak@Yn({d{Fw?)t5n^2|bM8=dI%_gh1h9 zgr2I7k&(gRbGVl`)n!0~?(^n)-mrNRrdKFS(NoJ;j3qkk#z{T{v>g;Wv-Yft0FgXq zpQ=})hq!6KuGsBm|8Lkw$|X^;NTgq)BZa4}q*Rx7x~aB((N{+mYw{eJCV^tDip)yy zn?;g8fICSIR*k}=5WErOK4wG@T!@J)Db7bo@G_W`B}vsvNKLubvLW9r+NQ2{t}B{( ztBQ&$HUDg3Zv2QszgDs>2>jt&2tpK{g71yLgs9eS0(%1VJPM)9&0Qo9S`t+$ZGZ1w{u0v~ zE$Ex=>sFYGtu|C}#^2M@-WCA8sMe2)k`qvw<)%dkxToG2fN@wc@nR(#9#ucLb{J>u z8mv)sy+_*Awr<5nQ|ip$usHw2M%}ycC}1dHHRMs$;9NkHyWWb4+DON;Z`>#82n%hG z35j_-l)mK&AKJ`vBRh%>oLAqg!5=PTtZ9(3v6&k=#P-$8;jz!^kdWFfCA!?wpsq2^ zT*(!N3Hf56}SD{^g&|KZhs zxo4-Jgo@3Z6h8=eNPaeY%!WIJ;s8kG1C1RYxWB?RM?v9TxBp-vUN1se!5BozA%;CZ zF|Dq)01F`*fl*@dMd(hPF_yHGnRSWmHZ&C)vqBNtcta2*UEZ;2#~3-?g??lSF|Do| z9Ru5|+wx9J^J^QmsYI6CCau!c_+7EA`mUQqMr6BXsA%JO4~6kPb=m8h&4vuU%>1O& zXZo;~>eT=h>A{E9p`PW`ATvx)R{ql1@?rHksu!qz`>^<&7e;MT;0Mt``n>)+CJ)wr z+E@12njs&l@QN}LN76t@sPgU!HOKFL1C9eu2BaIlTU6UE)oH#=5{N*|n)`By7$-*8 z2G0_9R^n1+*Zm+kseNYRG72tP!ehK3_>J}D^c$tX+>ctlVy1gl=b*lwQEAb9i2NI8 zlzf!7n?4RV4RR14l z`O&M`!+chE{h9m3_kQ;16WNw;V#A~NizbKAai6z}gQC*XggAaik9%uvav13DjaaGV zY(q)Sw|2=%TDqMZOh#}skfakS>8a=AUcJoT3xRBT14=LAJ*wl0kABZco(}lgqeR)t z)et#_<>R%9RjW@S&yfrdJKKIpK7^)<=Op>)P&r97ch`nIsmQMex{7(&6rjd>ZFShP z!t)N_@w#~uw<8sw@KP*SverF%;V3|QiL1jY;ic#y=2|6&n2hqV&@XU+!XxIT~fG7UdokXoF$f$3$}k2;8r-Ba?0k40_Sf|~~mYJ&sl zfoj(amNGUU4bWvwMof>(9r6OG>F#}{yz4gf`ioy?{+ON~W2=4T6H~$X2Av^UJQ#QD zIqYV``ildW#e1Rmv(c|dQU#jP;2OjW<8=%srZffJedA5}RTbaKHA>FCQ~YXNR)m$lfR_jUA_Y;E6P zyZ-v%yC2?N>%L?9OV`K0JhzzkKD&?N>aSgYeeTB&D|OdT%)JvSA)iq1bF7P8dQA2X ziF9QC(jB4-`y|9^^RR89@GvQNdJ7exruCPxXk_C%uipPpo9ckGkDY80_peX+l|)~8 zW|h8|FMCvXx&Jd#a?W4>(h9i?ha@GH05>L!lr%L7uM_YWLP`qneU4rhm#)dtac5>V z)`F<+{DtA!|Id?QKmz2u0i8Djif-N-aUt(hr;~n`w46BvT&hVG)ivP7CtC(w!XtPBD)oSg}00!eA0pXER zqUy;dH=iu)r`&<@4QBvKlV>$jM8^;2g01;q1}Wy+nZ7rMcMLc&im4idHVklbvzbv<&voeYS$&yOQYfzh<5~z9vhad(qzwm zWEXsS<&O#aeoxc*f9opobyJ7fI%MB?3~!~CNdrWocj1*!$B!3YwXP5P?zLN6c~)>d zB&6%u9XSIurk(*XpBvP6_D6dkl*de=Xx9MD^bUEP03OywM&)lSFM|5NU)>FZJ;)G5(DuauEPRTWE=w$b4oRSbf0b+0h{mh3|&^HlUexQ(YPutP_xBb$NC zb4Mo&PD(d=D{J`ZR-!|s`E3ChdiZUQ?lVlyhYvBOC3lV$ffw%Spf>IhU!|0JmV~9I zZor?5s5^Zk_h_nSLGZWfXPi@R;1@*}fh2$Q$K;ZK$TNB45>8W7hMADH^<9D@{iNTd zGouWbiAm~yIjABL=YI0zdz-_%&6q^`^gUYQgL=kkx29;TZ*%P$Iu7P8))zIUxpi{u zo|xKkR3Z%83^jSUk{;ghV|n>9oRT!c=#pr=Mc#XPZHgw8tA_|B1m{*oZvwzMSw64@ z2>MkBD`k|99NKoN>qj+dYQw-_DC3xyg&;F=E4{S0g_+CC(jl=DVoq$#LL)w+ZryB* zBy%`Qs+^+c=?f1!AqXs~kdNsiF1|Vh5X~~MmS*{eK?fOS2m<%)1{C9*awB^{HIk~J z`FFELiy$$Tfes=h8K+g!&~$e}l=kOZT1^QHzrOUSw<|Ee;{x>Vbp*Xd8GP(^UfQJ* z4f#UI;><_-;JH>8w|?^Y3y)nK(dF>=k4zpJN@D^{@pkyj$%zxtV!4>;*_+6VE}MZy zvWb-XS)v*Elfc)O(yFpSB_karI*R#r>pm~CMoouXB^51O)o9s8JXzjC4t*q_Wh_Y{b=szQ!pJ8XwL0Uek%=|nRX=3I zQ133C*qCN&$cWTpMUA|SOmT&orTv@Tt6#=$zKZ{Gw9l4yYfo+vto8btt*QU2N7aI| zehFNr{k!QZmbj;pora1XHJ&xi#-gePc-~b3>K>rR zwur;VhhFgAxnTN4OcuIDxNB~N0f|Ay(lk<$6&g8XFMdF-LS^E zCE?Uea^lY({AwA|>GNyX(W+SzbUa8?KHlRA!$AY>Qsz-`_|!j$6hEq59goL*#6h@@wOBk-}|gUjA%(w+KDJna{6VKCeFJ3@63bQkFI?nQ@d}GEYoX$#QlxE(NKZ+3 z&`7lC8}YU#V?#R+_LTc~rHg!=wd5Tg2NAw!fP{*j)n;%Z=@~%hZSBN*Ehx|nT&HXB zK-Gz#;Pv)G`Du^pe_=Ja(GEKnaCRIY#cG8Y8Zi9Jv7MT zd=+SBSFLrtwD86O*|aa=c;)iQ3QKqa&%oDFe4kG964RZ4ets(mYNMH@Dw*T5lTHI3 zH6HVWPH3Dm$-#rkQ4}X(Zm6xzVPpQHTKy^!?DW*8gR zUN~1?nxUy|v2yPkh|@;8=d;TjW-=EFK;p$!4jJ{fXqP+86~61^ou@Kl^%~{ z-q*-{rf54*W%VYfth~71U4X49Zh5k@?7kj3!qvTPWd87eF*GUtGv0K4#dsRGbZ@*K zP{VqI*`xTvxO#9$jXhqaruSC2sir+9wWo-II;ve!K;B6A7N;AKfve(+8xeQ#c?;WN z@0#ZR*`dR3W63vGAIw-(AB{O)qZL;9GTOniL>soL`Z?Yu(Vwiq%dzle?=W1@1bc8o zIU1D;6s?jLhm!o!SyB}^EG-Z2iRp`<8l!d1B)dki@!HX=DG{aZpYz59#Y3H z!$WacWs0G+!aFoI>-%QtaqtRfKgBQ=*<5R~3%FD6;F9XW!Wn>DQLzJzNFl+#RL4s# zC~}c|HfhOlx$kUCU{GYsOHylsMB^1bD(7va#dphb%1{r{+$uYqvMn4{onxN2obF@e z=A&|%m5Fo1R;qq>ec&R1Xav)GgxbeWU1c6_iaDy>k?a<`EzhDQobsL=WV*zMh0##~{F(AM>$Y3jH1mTS~ww$2kvJ zTc;7{9($D6_a6KkSM^S(!Hh_DzSQ5d6#sD}5sx7(47w5X(=Ff`K=b-5=q3?*IV#Mgq+CI?#$v9~J z-Zu2o7kUOR;qvp<&avp$+R~RVhnt(K^@a?Lc|fZLRv!1!ikx3#2obUq113b@qLbP^ z-NRZD+{{8qn}h)wQKVxsl*i)ZdVlkmuZrz(t`~1kJv>N65do-&EEG)`jUtg(cM}A^ zpQ8jMGL4K@4o=*;K78bW+@}bV%x()v&o-`~>Z!_#i%Ps&3+cb@=iSguzmtMGWPHkT zTT3q++ViyDSMU%!><1h6jk100$l^IQoLYwUuHiy)Vx-K>f+a(J>mTi?iV|QQe1TIl@*D5Pj#^c!WqEzNk^V~8H1N-A&1b*ZjdsGnmxX#R|%J6 zRP0J=v;oJiS+UNYhO9+tv=~QsY*l2hNe`(otS$r0%L~pDv1j8EG9qKnxjK29RDhCM z^*nC?EuM4l#lrHem#SUGy6L{G>CE~iN~6dwDYxky!Rq4tMFFfR;tB?&T27l#vb<4= z=pM$XfLYtbxO#*wodGIRg@oWzagul1Fppkr@wQR^ny7D?X;`tb1c`%QLO)Pi{u?aH zqo^FPklP?}W0#UIF5fev$+@WiYL%}oZXe&s4fgpg2Hsddl%tirD(I$Oqp4Xs_hDQZ zmOnAx)QuW%x2Q~+y`;jt-VuG*Nv6-)nK+oJFlpM5M>GU#^#RXNfnd_47;ZQ2zB(qz zR1-T1rn+tI_K^G&A^px|r(bkwn!@_MLF{owW!cB9O5|}sL;7XA;&rE&3qj#gSr_RT z%dsSmkZS#LzQWpOC_3l^u^~8RF*~2P>^TR~v_zp}eW6vH7BfW&NVFl#AEEXVT-h*c zSMnAI!wAv#-gUco?HehQEx(sj$Ah7HgZOfTk6#;^>X_nyu@9_xG?!FOvN(+lms#Hyp~XfO38${irzP2wWEKiJ z)mXQxpqTGcQW3R*ke#{?>@8{oW`eYr^+mE*T@k55*%k6es!aI&+wS$YmQ~{7V)T>D zrtJoC3I=65cO7{}6TJ+)7Ag?c`@l$K@etX=9@9HTIV3^p`&sYk?w1XF_1ITw+eL|R zDSCA3_JYn;K_6aoAube3B)UP-pGf)@p~+$@U^=d=i)kI!(=q&Xz0a!Bjdfd<_>HYs z7t7vVsr$of9hJ(M0#Y3yERb$8b#q|)`gAN&m8^kL^^PBl^mCzn}bQcb(Q{A;n`nb>B^`%?Om)X^C zvEh8Cg_?T)vt+#gNLP%eMz@bptIw5D3FcUteM0nXRetLDQ*V-j&$a15QA>vc52-bH z7PDgE*ea0xhEUa&-eHN}FGOpc@iU#2&eD?AH60NzH8sWx>SSFBX}ZfOqs5v^z`;T0 zMw9q&0`I818cI5M538>0!0Q5Y6hP@-586ryfuq_Jg>SLT+_|>*Lb@+hyaz5i^LV?HmiYFptGNHE*CkjeZ_sbG4DitnwIBSn&$6sIyHM0u}N!iKtDVl zAW)3c1n0f^fJQy~!fvTVY&;k&^H6!kL4@^ft(H?H4E+X==j+MDp~$P~Qcq!Pyva{a z_@^RNxvbpE9J@fbuOmdC!uc6=t!sN6t`0pB^;Bh=rOfM)SkEsl>|sTf=hdE_KJv7s!EOGJK2)9 z3{HyH-LMWWD2xcq?*S7GKok<2*XsW%G))n%nXk_giuKdvHe@>ws*T}?fXet6s=;=p zc8>NG=@%i2S~tAB)N=)$=eMNKOVrQBay=~@!{~i`I*%H$6A&3Dqu>(Wh+;)0Yw2s=5f!nb6 zJiAJ@%WS7OB})B?;gj~KhasjeWp#8CAq~YomwS8wC+0JD2Itv)9)PbrN6tgD}n~{JJM7n z+NQHe;kQhi8iMbd_=dB#*19X+s`aj?C@|rbIxBF#guKC zngUa<$@am9JaO{&Ww3XHQ>#AT{fvnr^F$f1o1UfC$9S>njB5)X!Pd~rZ>lz1;(Urf zk0%!o71&H!)WP5$Cg93ntK*L`AdyoYyH7(-e7 zdiQ#$cadcQnAwzd+i&CBm4^hk%7plRLipkN%ZKTwSP0Ys(C5@NdrVeGa#czZ;RE*3+?>Pr*G`i~snKHsP!=+p)Q6 z&{3DuiH3Sjg}`6&szcd~sp_C=t!Wo~AT$X2keV*S^UuC7v|QLh`xYQbfG(XL%maOE znSL>yxwH2D>(q!W_=8!-{(5D3yo{8oU0(fULAKIjRF;W#I-?D7yx7If@Rx#uH#}%~ zC#Lc|W2&3DjEX&Q9g>mWd~u2$Tnnb;;+tV-fJoEN#GkEpJp>U^cIz~J%H+5sb#!`> z;=n7ND6c`T%GJ+dwJUYYA~I9DqLBUoETgR{wd48cSH6+SGH;%!vl60yW?D?A8@fym zOi8McSbBOg_L8KY?QF!Be0Vs&g(5$wj4=}GTjXT@ejJyVN&@!t+pvWL`HLWMJ>%Y4 z14RCiJowJMlDu73BU|)tLv<@cE#tfgV|KVsdYZ_Np2zi2fl11%NHIE_wpa~cOcj5> zBbLt>wbT=-dW2FbwEf7}<+?F+CCSd)X6QS9M88ocwcf!$*y-Fzch}|p>dct0mMA#T zvzxyZdG*aH93P+pw#lq9Q2ZX3bzMy}CNk)vvPG zqsa@;{U~$X)lAr&6BIWfyouUPw<#EB(pFiH{8^^&XMo2zY z_3OZSlt4WMPhmL&m!sl$$Q35qBv`(~UhJwPV#h(>A^Uahxi8;FTy@a#rW{^X^65gT zi+DaH(1s4U5Q#u6nY$I0L0T033sYAgcWQFXMGG@bJFXg!c#TFoZp2LH)0rz)uONRo z@^anUjO;%84%9~;Gl3?=rsRZQk8r}AteaUU8*FW_tX24M*BhF`HQ*_RYCYCgu?`&1 zV+C#QCM0yUdf%O<>%I2xVo^+ASbTKN7cT}yg1u5WWTZEg)rl}b6A-wrgrnuFls<3o1Q82 zotRjr$@UD_XeZ#@B(?dv3?#_UP1Cjp4s#Hms4+0Uvghj*?zcXYy>)53aCtKg$`7|M z>{M4aR5%Qn+%wQ~wHT8nCp#s$6xl<6m^QFvuG;ik zC(3oE;0}@Ch*MHDmf@&bTj6uXH7Kl?`I<_}m^FM})`j@12c8@!9&myZmKi-wa_e@I zU$yzA?l5&l)5(&ycP+_0kdxTq1ZcJ%5%8)YSi1HM+kywEs_Er39+x!-Y);M<{%c zUfkAQ@f*?&(uOdj8XJ z3LS0#zql1j@6V6r>1b6@d_tH)(h*Vd%m4ki_8W@-_lHQOOYoP1&SaPJw_C=pcM_sQ zr8YFT=Zp6rA0-o`?no_lX>Mc@vd(Ym`jrHHp;Bqw%;6G4dQD{f+;BsNeY@E|d2(gS z)#>Mk;GL+xpYQJarQzRU{-=0zk^b>YkCtVK-QfUh0<{WRWUQaDv(~j~Vs1<@^e^wK zn`nhD>*p7l$D$+y zt{2VGr^&VHDN^vL0)6}X^Z6f~;~U)6Ai2Jd;N!#14Y%Wq$7{A!{S~K6a;=RmD{>D{ z_R?nM@t!9!C^@g3Z|chqU*K#@mJb30y!Itd&!2h?K*@mOcGr+kZDMsS$)fPfJEAE|~+|wiV?>BeZEZyU9OUG9anOp^we~b>W z<(QuI1%=3E#Ss12otjuWxOS*D5EM{!5Pul=0ja#PeR?r~qMo+kcOr9sr~HI_S*{s% ztP-F+isRV#IRl(;4x5P5{sWDFAUxTfZOSf?Q?_8uG2y833=nEA@2FUM2Kb%GKa#E{ zNwrzia+OVcPfX=xGN|oNUM)K&=yxjrKzb1i=|0x{4OQt8Q(@qy+;rN&c*39gyZj4( zb5MaVkJj&e4#x!iiMuwxbJzVh?kfNCCjQLb>OXK-@;B}l{4ICKe&=r1Z`{@Xd+z>5 zVqf2{^Wuc(AGrG)jZ421{*T=KjmYgkkp2(c{f){WzmxtC-2IKp4W^cayAJQbQ#(J)*f5`Nv)fc({oN05jP{!&& zhUj@ta@%P}kgX2CL^H{3DEsZ6zha%g*D|Gh#~FJo?aQ~}xQpV1eJIRvZ`v88j0ZQ* zuS7W!L{jT!{bRZ>Q3dyC*))LuOQ)m(-N!U~yBv2lMvifIFWw*p^Vx&{kc;lmU-kU$ z6N=(&on_BKBgpoZEaE?^axmD*WJOdA2a0kmdmZqr+cp%474Udv0-0oW`$!8=)p?=f zOvtv*k6K1gYmPzV%Q2m+pkBR<;r4uL>L>62*=+-uo`1=6QT5hZ`5|7X{RL4 z03lPZnRgQCl%C(d=Usa(*6j>H+`N!-eNY2;PzWB!UJ@SOawNp@UjJk5)jwl!wZhbW z6XGu4#64cST%rEtO{a7QNdEM4Wd~ZRdj?Po+5?{QcjG|O@5(^kt0@89amr&L7A+C5 zsf@LHpuWug$CR6gk2wKFYgosgXRqY#b0axU?8v^x$yB(^szo67$CaDtT<(qA5eEQ} zkAj{7Rn1cz;H={)8blodKG0;bnt5>k&@gjBC=!-PIFMB8A<;N| zlA>tPrYurv2gWi}ogSuf zy7}q+?ZPa~^g0(5?CXyfDKOT{5#Fz$aDCwcozwC{pm4m8pF`hNRWEXg8>#D!S!S+Z zcAAvPKd&BIijP06YiJRx-ud}= z7;H;Rt$bKxW@*{BMwCud$68w2zYADCDj%Ao9kJwFy1q6h9Le;Zw* zmjlr$D~Ihib?+mhazE$&&_3ai9nj$uKQ28@$g$<6NqO|0ETZ)3{{~L~>b(Td$g;#k zO@w?zS%%}j1BK8zTe$6%A})w(RYat0)vjY`cF}C}jb-9b5fT&5tjxsG0$<;d;CZb= zAKrc};N}}SxWjd%J&Z}08a~m`eT0tyy;PcEa0J|p{vy>GVtb?JyYr10LfZDIyxRgL z!*E3lY0#>?Ls6z4x>NkLu7CAgSs7*j4@tJ;Dckb))*Tz2q4Nq)&izW=pI1BkjeFoA zCc3Yi-wgEeQyuNwQpYqY|8f@8vzkq7_*lrM}=Rf{= z;;$&O=l&IVTP~0X%~eeIinR-8j$xkt2;1`gGr%*LK3LV|eg;{yKelfK@xcNs^7tK! zR!G48`nUQa<}S4BmP|-za|eK-gY@~Um-ge}Knb<0a>v7g3%f_$iAZ|SE<2(hok)ScIdV|Q6gAn6nm z%35F0Qm!CmNdkS)YZ%4s+&Jdku4gsgRKQSE5o-G^!tk6O$Zpc~dNT`(inf8cbcuf; zXYHt)FMww6E5a+u9yokk>bpfVKhSg>j)Qpncnr`;>hIk4e6?BvHX5hfn1xpk1spm_ z3x1!Nfvac9YzdJ1l_lm!)`@G&DqFSjoZqlI1L(K1vJ%G*wGEF{g({(Tx=7iMP?LQe|F0&5J{fn&Kk{24Si+%2g z22g-a*1Wx(k?cSE3Fqhbi34&c1%!!M3^7|u0&)qo6zv6MBOAH6JbImKYi3s%tMaNa z5Q-JHt7e<~IBmD=@1>4#u}j@)?>JL^F2CVk!n207-nO07#ab>@0#do&?rv`VpHeUV#<>??OASK#^rX{ssPe8-^rvog9!mqtB8782VG zAhMQ?`n|ipS>j`tbmQ+$Q*_^DAH)hFFLZlCAbY@4$i{H`SdNkzlaazwwp#w}@8>;; zNBv104`ag>b}EWc?uV>6Dxtix^h;kd_r7*nmbicAV7`|ctQ=n3T8D8tq%-TOT|3pb zuZjU_K2o*gmx2he#++#Pp~v_d-{CqmMJr%jO`tT{PrIUHE=3LFc7hloC$vEui-KTh zw+05KOwslX2m`eB>LP$W$`;Yl29HbC}Fi4j zIILi-d?aHsr>I3TJ2t&4pZDh5)bO?luSwiuL)fx2F;}jO&K~7j-y(%BwEXanmP2H( zsaMOr*xayNn)STiJ(fbLuJ%c1fcmE1KySyT&>0}rC@UftyVtjIxN37pG()LlIo6FU%md6jdTX0^i^lhug0@d|tcA^^#xOXevrYTxl(6#Z$Ve7zaH{QU7ch1?V z7rC|dEpBqp;5#WVrfIzsFAVT0Ybf{2a%XLP@pad6NWfrSVTI$(PQO)OENRQUs2%nb zxu66yr=J!zmiAW5M*9YM%rmzVh1>+W8#KVH!%)e+I`?NYUSP2-r zc-85LgWKpL!g?`MOc%Z#&wx_7-UY$i;G3|}D3eLm&)0WA(%&&F?VsMoLX zXD6cFF&A2l&G`yqI<8%>bibZ(?y-5J@m!oT^EoQC%oj&2F3Lv7{*%4&aIwJe2eE7@3@Qhj&i_zSt&ea{5u6e!6b->Ezb$-nx;+1 z)=jz$+{>)g8s?X2f2Cl0fs3j;ZiQhlG(o#_LHVch%_`+kx(EfuM}#~?e>WKQ6_OIU zg@z@57i0h6H_TK|IR)%o?w0}+l@va4#!`U26Aig1>Yq&Tf$V-fHnVe+kuG<3&M$zOGAa^qjsN#EM0W(fZb4iVoLFzv9!> zse+(&Q14T{Db)Cm(+SK7nlx!F75a~En}jht>&^fVbB;(rW#GDVwk5=$`SpN06E-r7 z?_fr^lT+4S!(Vr(yyvCl!aM0i)FFx`%ht-n*11nNH<=hVO{PD6yt6}y4{;DX5fhl% z>M&AyA3?=yMrf>gsD<_=X}D17PSsKGCicw*pgI|)bT-g&7zwH&KH7NO@k%t5)!Lh zyIQ|h_-^TxPIxiHSr(d4Ud*t~j-SLg@hKl5j@$Ho7DN7NA`qs>v;Grag3{o0P{~gy zu8PVz`RRaus}>kNxvftq>6!`NJd%xCS3|rm8xQIe*+0or+$#b;I!<&P|3#xL#LCs5 zMg;MZMdrZtmM*r*83)33)SMLvhO>Uv69q*Bg6Yit9vZA-rcKaes4o!=WTD2ySNUaD zuN1Y0OGgxb-?`+aP+eAv@jo+AaD$Mj*PMC}Y`*yN653wL% z%Fjc?#$G_{&Kp*4M_n2r2&OICY6Px!iHD5JQ;)vE|lSThD59)1JIGsCc55E{* zm6fj)Dpx~g&N_5dsc$|Wct2MX1v|@Q8PLpYADdG_RZvrLOMIYRg#+LQ;IT*%N9TS^(0%wd1 zp=&~!bFb?fNhq&~_A;xYXAuPZUEC9T_0{1|Y9j%fASjc?u8}c6 z8TAG|B#(4u2}XVEPiV$@g%c3$RXEAxOD!%uRt{bxs4Y!}e&oY6f0E?R81zZbhf8|jzQ`74bh>{e=nU_Gv zwS?gxP+d2l`Ai59+&CYyI4~RbC+q4B=qnqlbL3}}hJToYRa`RrURs$RnJ9U=*AL1& z8?Vvf2+x&1N3{9ioA}|#O0$U%9l}Qyl_92LUme;VU0^3#yH#VfeX6?C(KCSKu3l$y zXI}oO*~fbeYiGoX)$*c^8L9DD=mq6T>=L`!4yDZl} zXytoav*fF*5d6D*d2y=_R7|$X{Ock%iguETiKaTBo?7`GIqOeM_fZ5R0;9*av!-L% zt7U=Kh*e)`OOAOv^ZKjH`EP5aHFtbLeK?sC2ZIZ$-J)ZPB=kYi9MSjXbYe$_yH}et z0%(w#y%LaO?`Jo>VDDmG=0=J5f1qtM`5o@3Ps~p><>WmS*HMpDSfKC_=uVWx^ZKaV zV)`0L_T@($&Gf`Flhlg2At5!~T1>A?Cm|Vq;sxKXwaZx`{tL~qyGGg;SCOe<%7z2A zsQ|6p4KeOk*DwQ|(%xQeMs>FQsq^>rfOzn1UOA$hET=gk+L7DMb*7Uuhcr)HH%`c< zCjs+3o1y2k(1%6tw^K+rz^iBm$gaSygo(KB&Clf=w*2VfxDJM@eDwCD$vRi^t(H z7}NDwq~sUuXpG;@Ye@3_Ss`bZRimi4x+}e4)`C;Ru7{dU`p!Z8WbxZ!I`xf7#z7F| zz;Fv->CKN+VM%j6qh(%27AVwB*KU4;x=U}LRL}Km+YObAH(wt!&Ln)|bDe98c1pl- zRu)7e`N2!)iajM&=GuDFC!ARO7%t5xeY*U1%-WK?V&a)g$M%OzN_3m6vCO?v5)t`I zlcMHyT0=(A8%}Cbin(hu(^f9FQ+AtPaj$M8nP>uwbE{S_!;zqLXjBH+DpEpa-tLD? zM_A1Cz4#H&?>sAtF7#6z#V7+^!&W{!uB!^Oi{Sv}D=IR9@%jrrrS2zNlqw*87Szm@ zFaxx*mOk=Xa^Jp_6cs&J(OWNOqSw4uaI+PWc14p^dxPMKA>FJ!xSTNJkx~Go~#M{TRy2^wZ}8 z;{f1NX_U~+f3a0QA3hbm^KNRoylki?CTfuYxAQ-Byq~&_6Wc+YFr5Lw2B43>X&rjm zTZ0qS)O!C6vA2rT)>%=9!n;>Bc2IN#-AlPN(rJ`-u=WwRAt9a7r0%Tf zKbc?uBAY!qlMIK~G3e2#OsK}Z{}3ZVA>*j~B@biI!%0p3f>5pH9}#zQhBH8s+z|yK ziQ|HA&LIJ0e?Rrz%wW|eV-kdz+KwTtSsU#Dh`|8d&*?`;b5QkiGp5YOJVEaaFhM9$ z?^?25y&@X75tPr?P0*kwmM&%2=;_;6F%Wi@E&_TC4OZKVAmGRmc~xB`^T}K^Ku&f( zKGAa}c%Ih=(|qiFqDK6Tr%kBq>8omnE6~~tZpFmc-}ZBJJbt=~Q7+@34KU325R9%@ zw{J0C3>mBo>#5Ult!-UwC=G2sFo5#ffyTP@(Tew_jp&(W6uoiWgTjZ3kSX#s)`DeU zy6#I&lv&c^xx0u}S-YI9<(7v*NqbaZ2_d>0%^Bf0@G!*CYn0FJ~`h#hI+{^Xx8`79=Kr9Jw4IT;Q?LM=w<8ec>X2 zb>iUMX8c(B&gNA#wsh7T?{)*Ma`NnU``8C}a#3R_O!Ya~GgW#rX$w(-dpJ-)e#uzO zufcU9G@pGxL-yf~h@2D26d)(x)mKnH#5wjnJ^+_bH+z9qAvLvrRojzfE^Yny)HFZs z-84)WNffk(p-%(zA?<{72c`2}v>p$-eo zSRA@9-fXC?u}nPS+hseG^OnbDBJM-pkVE|$Ajo%ZxhXR6$qtO3&l&q7app~C;;5)m zqfT+OtoF|4Ca^eSOfYn8E=%<72W1NNaU}j7vsH3!wf8R7J4do=tfW(+ zXPu<}YM-`0b5@k@=$@}mI~nKEIrclZSANy)FN^3U!v`c&5$Svp<}u3)&-_eZCd7NQ z@~s*V3*RG%A0+@WfJE;NbPwOiZxtLW z1>_d$x%`5?^Ygu){l`NwBITxXJHH8HZn7Xlmp zA^7-pMM~or5!6JzGI9HX?Pjoy_vG4Lqa8y}TKGtM8pyXI6&gUI1zB;Z!Wl1`TnsBh zKcu*yF5#UER-b#_aw9tN5lT-_*I{MFi@(yBr*Oe4wF0-!z2U&-B53HfQM%#&-WbFBZ$){Y*e(6c8J1*uw%v(n9&FXw=vLFB@McW&DIU4f9`d6y*Ny9t&85K9>>`QZ%c=yG{|zNLc2^4=0&MyEtX!O{Z$2;@n>3U}Ij?W75$& zCVLt3>W=V9N1wbB;a#}E>x57t)a(PdiCGm2X5vSZ;x^a!MbnzKjoo%@C!^jxD7&I(#H$o0H5@%IrGGL)A0SehZZzX+%8A71LgIUk2uU-1806YyZP*(NBo3LZ8m;Ut6p^{l9z&uPWsQ0#QLd`NXufTfL^M*Z(V54S7_9Mk)z zO!F6L#!ZlKV5dikC1+|PqEwlK@q20_RdDE~<(|2U^(?z;^%Ll7amP?iZ`>2x`xF}u zn&v!Wl=Qs!5M~i;g7yBwv z7d&^>DVC{(Bd*9lp?EJOPk_k{lirDBXOc}m)n8leG_(mlU6dzxaTWBizJAMun8V7O zGTN(?IHZ#dVq4)Zw`U3x-w@tLw+mFvX*)%FrXnRT3f>9e!AToS&?yJ|hS8=#79Q!$ zHjU52u(0pEN=DVMywz~X!p*VD)+5m+*iKA3m_=sf$)HXb#Ku7&uS$gomi)d^NRB== zH1JvR$S1~b3goy)i(A%qc*I*nj2v9sFP))7 zYWfQV)_T5xo&nJMTt|>&C&wbo%@g@D;mIWH>*W&WGRZ;;rO9PkFi#0YBCP$c= zsUD%>weBxI?l}bprj7XNp!cL|?5$!8U{LCA#+lSi)`4cl!F`In`&K|Hto155y>Hib z2&kNk=+!cHy;D?N7zu^si@ycPd~5Z~RP|g{-hH$#GrD(p(c{*~;?%ILEloI+o~y*5 za9VXzMiV!)a-Pj4wZ|8mwzT(4kMDU;n&~3=oukqk=oWtLvdOQk%UcblstKqTZ#bJc zc+ms3RSk)23)00rBuYMBiZ{fv87;@g}G<;QeOq6U#e1^XCu?~jnfA^ zn7)sJX**ax!8sUr4>?plbV99{%dp53f`#AmO-HkIzhPYq@19mymscXL!wNGwc*^;? z1gzpbySwvMWv5;l?-?DfB^>gX?kZ)YL@&W~A(hvM#}%(XH;(KM-%z}E5kSWV=px>Q zF#60uLnWa;Oq{xRRhh7^%qStU6ZL6Rh@k_OWirrw3`aWx&(6aL26Z=d z>De^Ao&sE(6WrCM}M&JT3Z!zW^5sKez=$(27+!`cg***g($feMns1a1k z1a0l=>jcgGCr=eFy>tGTyV=XUh^U4BqmO6i@%-$kqSSh##y3OQrHjkn;yk#ZktKjF z5t@XKW7Y!X(zzn>J1OwJY#63#;1D|{U*&fTk*F!<5Y1Hhz5{!1L+>J^)%ow=He5E9 z^B(OKIZntQzL*PWo|_g9b&yRpIIBW65y`!|;;7i=tDXkD6J10Q?aK)gNk-izHF zK@v4^+?3l7b55AMZ8z6i=Rrjk;_p$jDsl#RWQ*+0GKbohfgBp{yJQ#Ye%RXFo{1Qj z%IJQJC9`$hqg)p6-iLq*1>l)_E5bmGjFAo&MHWTS*w7n$^_c1KFUCY~Uk){E+2|k( z3wOK>O}AZ6G!6Rm9kw?j)4m?b`b-yvsinVrM}AMZS(Vcn{B%G_l{*;Vt!GO40VO6` ztPS+g%&*ATN+72hRN43MrR1z|tIBAus0W$)Rjn7A^TJI$8F&k-S99$?6BWC`A!Bc|3Nw$lpBlD!mAp1AZJ0j%)Eju%x#UMh{= zrHENiB)eRIYnx`7qLlb{`@|YS@xeY;Q_Hpil&+~OCA>?r5r*(H(VLwF@o7*^THSE! z_)6!}g(qafFjRHHjm-83ya5UquBCr>2-+|WP#)r5Bv^GTm}YI*I4jy+u(Gm78LnP^q94_Za)^UIcEa6k(w=gu6kz}yZAM23m9xDW0|5~eJ1-S69h`BoKcKfkFQp_+FOjP0@dZRd`a;)L>8 z(KLxZaSGz{#19!>a7pYPfqGPiPh1L(Nwp74KU0u+X9@oTzrmPjic14}eA5s+j>sAI zWcrLb-WpVYH0=6>?%qysOotl-CGmZaZ=KAuplq~5ix<;!hD?v{fRO}7bhwSH^_sfw z-87%%ZKC1M)ae6KqiGt`TPaiGm40?d`n4{1;`32SQ-O0U{QCHQ{}K^TAdJOdz;h-s z)w6qG*ARbk(iPBiU3}V)R9Z5o!?-0r%Y+G0?JrLw0uFHazoPXsR-NP^PH8!p&_mA=%vo z9=pjZRU2O2lM^G`a-R@@jQPMXi0JVfqw)Bd{%%WT)AB`1xghw0nUdC(!OuAWb1^(i z`MRZ5)ha(BkA!wxxpgi&IjzSZ1$L}|F^Ufb_B)%3YmM@IQ!yml{! z?B05Fi3%n?*F{C>pdWCX+#2a&zvsRWS}}j}#&qxa%lD0yQdSZdAzem{fjjAb@V#CP zRsv&I!0ezog_LAY*tc{RQppt`75;)-{9%efOfd^--@F9gBo*G|$yOIDTRvZ5ZQitP z-m(DNUQhPC-;s>GM!fGKYuk+3rO&>0xp_xPu@`w|A9N}Byjl>Y|Br*c>_PdVjj%ex zRt&|CT+f@|&!vVPRa~B3Z@zJs{l8qD8{G3ybM{YxKjoAD zk7^JRZkfA(F5g3SuIki-Q^`=-s@j9AgG&M$u!wHRLNi3-1DK(UT(M7S)wnsCTV^^*n>ZH zJupkPo@r3l-R^f&!Vi|XcJ#UFgfOFJ7Y@sUA86!XMzZn?l*l$yjTC}yT$OeWLb}*= z`m9p4#Vr

fV6^(YP0u>^n#`bXg76d;c?n(OdcbyGBjJ`VKWB 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

#dlD3Mz}Jn(+jMTh5v3k{cgiB6A+ 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

=o`naZosdJ>SUXH3MC6oo2>@;l+}fy( zsocif?2WpCJB92chV=EtE3NiX8*5I5s-_HdrEpL2*^f{P5m8p#NFzTxSdXoV?#P92 z0HSfL2xX8qL-SLbn+bFzq`~1PfvT*zFNN~3mh-R{I~I_`s$;z>W4x+NQif{o72JO( z{wOJBdMmDOG>T6gg!v?$Td1r=sIIL0#^8;O`^P30y9g37seCFWd{F!dpXM2{%c|T% z?=l;HCO*lP(^*b+%tvb8PC;%X!s}!SKuID=l zrmltE#BNM7+_;!GlU!=K$oe7O+cFOUNY>mQslp8sDIhH`sYuOkMfGN)jFVFZ1lg%R zV<->i>8uVRDsz@^U%ESTc46SeWj48U62KwOPrNv)S?ksqK5JDNfKN5ED#aiybD$ux z<;F5f*jc9}Qmzp2dCJkta}RpR_2rZH+VFj=D*S(xT@$Zk^xXyt}4t8naj{Sbqb zDGr{$U)|zg);IGhjK4CS{it=TalIU->>lv6Fm5J#C^Vzl<*Q_WkYCm6KI;mK&jT$1 z$DsskW0WiQBqlZ*8;#X%(5Vra`Ve4=GYj)$MF>gOfH}N_#rSTfp0Qqs~SW64op+UM&HRWA{He6xY5tB)6L~ zFj3~XV}3@;?$6%x#)J=kK-?A_BGmf+@&E5`2mwtonyE=+Sh~E`a>RJ4`*^`N*7B&F z+-t1%Qrp8iEzOPg%w(W2;HgUigz4vFf+@P5xBgrCPW?|EC~OPT#Ks^GN^{%`JSYii zgqPn-elGE6^RFw232$}QtSa=jw)>GWvcE9v3Zje{X_f3V&&>P&6Q6~2IhuaBL(@$VRh1Bjj4VHT3HqJ1B5z7`YE6`@V^e?S(pbQkpK0lH3{@G~2 zn(ee_ctcIi#i_r4-YVQ~da|cTfP_Ve&$P*Lb#Hht@rmKE-l#^i*-)Wt&#g~FuD%x_ z@(73CE z@WH?)3o#IInqCqYxk5m4-68gKwPy7mDrrYu$GrR*#&@6w{RA12Zt�BwSX#jRQ(| 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 literal 0 HcmV?d00001 diff --git a/public/foto_rumah/1776684339.jpeg b/public/foto_rumah/1776684339.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..71485712b72081674c6e6129c2a71032e19485d5 GIT binary patch literal 164414 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

fV6^(YP0u>^n#`bXg76d;c?n(OdcbyGBjJ`VKWB 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

#dlD3Mz}Jn(+jMTh5v3k{cgiB6A+ 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

=o`naZosdJ>SUXH3MC6oo2>@;l+}fy( zsocif?2WpCJB92chV=EtE3NiX8*5I5s-_HdrEpL2*^f{P5m8p#NFzTxSdXoV?#P92 z0HSfL2xX8qL-SLbn+bFzq`~1PfvT*zFNN~3mh-R{I~I_`s$;z>W4x+NQif{o72JO( z{wOJBdMmDOG>T6gg!v?$Td1r=sIIL0#^8;O`^P30y9g37seCFWd{F!dpXM2{%c|T% z?=l;HCO*lP(^*b+%tvb8PC;%X!s}!SKuID=l zrmltE#BNM7+_;!GlU!=K$oe7O+cFOUNY>mQslp8sDIhH`sYuOkMfGN)jFVFZ1lg%R zV<->i>8uVRDsz@^U%ESTc46SeWj48U62KwOPrNv)S?ksqK5JDNfKN5ED#aiybD$ux z<;F5f*jc9}Qmzp2dCJkta}RpR_2rZH+VFj=D*S(xT@$Zk^xXyt}4t8naj{Sbqb zDGr{$U)|zg);IGhjK4CS{it=TalIU->>lv6Fm5J#C^Vzl<*Q_WkYCm6KI;mK&jT$1 z$DsskW0WiQBqlZ*8;#X%(5Vra`Ve4=GYj)$MF>gOfH}N_#rSTfp0Qqs~SW64op+UM&HRWA{He6xY5tB)6L~ zFj3~XV}3@;?$6%x#)J=kK-?A_BGmf+@&E5`2mwtonyE=+Sh~E`a>RJ4`*^`N*7B&F z+-t1%Qrp8iEzOPg%w(W2;HgUigz4vFf+@P5xBgrCPW?|EC~OPT#Ks^GN^{%`JSYii zgqPn-elGE6^RFw232$}QtSa=jw)>GWvcE9v3Zje{X_f3V&&>P&6Q6~2IhuaBL(@$VRh1Bjj4VHT3HqJ1B5z7`YE6`@V^e?S(pbQkpK0lH3{@G~2 zn(ee_ctcIi#i_r4-YVQ~da|cTfP_Ve&$P*Lb#Hht@rmKE-l#^i*-)Wt&#g~FuD%x_ z@(73CE z@WH?)3o#IInqCqYxk5m4-68gKwPy7mDrrYu$GrR*#&@6w{RA12Zt�BwSX#jRQ(| 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 literal 0 HcmV?d00001 diff --git a/public/foto_rumah/1776684407.jpeg b/public/foto_rumah/1776684407.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..71485712b72081674c6e6129c2a71032e19485d5 GIT binary patch literal 164414 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

fV6^(YP0u>^n#`bXg76d;c?n(OdcbyGBjJ`VKWB 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

#dlD3Mz}Jn(+jMTh5v3k{cgiB6A+ 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

=o`naZosdJ>SUXH3MC6oo2>@;l+}fy( zsocif?2WpCJB92chV=EtE3NiX8*5I5s-_HdrEpL2*^f{P5m8p#NFzTxSdXoV?#P92 z0HSfL2xX8qL-SLbn+bFzq`~1PfvT*zFNN~3mh-R{I~I_`s$;z>W4x+NQif{o72JO( z{wOJBdMmDOG>T6gg!v?$Td1r=sIIL0#^8;O`^P30y9g37seCFWd{F!dpXM2{%c|T% z?=l;HCO*lP(^*b+%tvb8PC;%X!s}!SKuID=l zrmltE#BNM7+_;!GlU!=K$oe7O+cFOUNY>mQslp8sDIhH`sYuOkMfGN)jFVFZ1lg%R zV<->i>8uVRDsz@^U%ESTc46SeWj48U62KwOPrNv)S?ksqK5JDNfKN5ED#aiybD$ux z<;F5f*jc9}Qmzp2dCJkta}RpR_2rZH+VFj=D*S(xT@$Zk^xXyt}4t8naj{Sbqb zDGr{$U)|zg);IGhjK4CS{it=TalIU->>lv6Fm5J#C^Vzl<*Q_WkYCm6KI;mK&jT$1 z$DsskW0WiQBqlZ*8;#X%(5Vra`Ve4=GYj)$MF>gOfH}N_#rSTfp0Qqs~SW64op+UM&HRWA{He6xY5tB)6L~ zFj3~XV}3@;?$6%x#)J=kK-?A_BGmf+@&E5`2mwtonyE=+Sh~E`a>RJ4`*^`N*7B&F z+-t1%Qrp8iEzOPg%w(W2;HgUigz4vFf+@P5xBgrCPW?|EC~OPT#Ks^GN^{%`JSYii zgqPn-elGE6^RFw232$}QtSa=jw)>GWvcE9v3Zje{X_f3V&&>P&6Q6~2IhuaBL(@$VRh1Bjj4VHT3HqJ1B5z7`YE6`@V^e?S(pbQkpK0lH3{@G~2 zn(ee_ctcIi#i_r4-YVQ~da|cTfP_Ve&$P*Lb#Hht@rmKE-l#^i*-)Wt&#g~FuD%x_ z@(73CE z@WH?)3o#IInqCqYxk5m4-68gKwPy7mDrrYu$GrR*#&@6w{RA12Zt�BwSX#jRQ(| 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 literal 0 HcmV?d00001 diff --git a/public/foto_rumah/1776685831.jpeg b/public/foto_rumah/1776685831.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..71485712b72081674c6e6129c2a71032e19485d5 GIT binary patch literal 164414 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

fV6^(YP0u>^n#`bXg76d;c?n(OdcbyGBjJ`VKWB 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

#dlD3Mz}Jn(+jMTh5v3k{cgiB6A+ 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

=o`naZosdJ>SUXH3MC6oo2>@;l+}fy( zsocif?2WpCJB92chV=EtE3NiX8*5I5s-_HdrEpL2*^f{P5m8p#NFzTxSdXoV?#P92 z0HSfL2xX8qL-SLbn+bFzq`~1PfvT*zFNN~3mh-R{I~I_`s$;z>W4x+NQif{o72JO( z{wOJBdMmDOG>T6gg!v?$Td1r=sIIL0#^8;O`^P30y9g37seCFWd{F!dpXM2{%c|T% z?=l;HCO*lP(^*b+%tvb8PC;%X!s}!SKuID=l zrmltE#BNM7+_;!GlU!=K$oe7O+cFOUNY>mQslp8sDIhH`sYuOkMfGN)jFVFZ1lg%R zV<->i>8uVRDsz@^U%ESTc46SeWj48U62KwOPrNv)S?ksqK5JDNfKN5ED#aiybD$ux z<;F5f*jc9}Qmzp2dCJkta}RpR_2rZH+VFj=D*S(xT@$Zk^xXyt}4t8naj{Sbqb zDGr{$U)|zg);IGhjK4CS{it=TalIU->>lv6Fm5J#C^Vzl<*Q_WkYCm6KI;mK&jT$1 z$DsskW0WiQBqlZ*8;#X%(5Vra`Ve4=GYj)$MF>gOfH}N_#rSTfp0Qqs~SW64op+UM&HRWA{He6xY5tB)6L~ zFj3~XV}3@;?$6%x#)J=kK-?A_BGmf+@&E5`2mwtonyE=+Sh~E`a>RJ4`*^`N*7B&F z+-t1%Qrp8iEzOPg%w(W2;HgUigz4vFf+@P5xBgrCPW?|EC~OPT#Ks^GN^{%`JSYii zgqPn-elGE6^RFw232$}QtSa=jw)>GWvcE9v3Zje{X_f3V&&>P&6Q6~2IhuaBL(@$VRh1Bjj4VHT3HqJ1B5z7`YE6`@V^e?S(pbQkpK0lH3{@G~2 zn(ee_ctcIi#i_r4-YVQ~da|cTfP_Ve&$P*Lb#Hht@rmKE-l#^i*-)Wt&#g~FuD%x_ z@(73CE z@WH?)3o#IInqCqYxk5m4-68gKwPy7mDrrYu$GrR*#&@6w{RA12Zt�BwSX#jRQ(| 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 literal 0 HcmV?d00001 diff --git a/public/informasi/1776847644.png b/public/informasi/1776847644.png new file mode 100644 index 0000000000000000000000000000000000000000..a1a91ba620dd5d7ff5d6c5ea846431a7105816b5 GIT binary patch literal 21048 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 <~yZ;M$}iA-fr3S*G_90YSXluo=)5ueXWX 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 G?7sjCrStCq literal 0 HcmV?d00001 diff --git a/public/informasi/1777959481.jpg b/public/informasi/1777959481.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da523d778986ceee19c4fd703ab7f6b98d9d47ed GIT binary patch literal 36650 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�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%0AU2FF>vh5&! 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


oIVBCyN7pVgXwg}kP_ z5W`<#q+X??wdp+-L8cl|>+oix7h2?P#WS);0#eaR3Cw-!qW%lJi$VqlSK9;Tv)xqg z_{g#m8OCx==?S(_bLs(ma!}0ICX8KRpl&A1*choSA8wkH8SyyX)!myf?%hf9K)ze3 z-b*>qj_UR-*_}N1nl}h%CKfnIYnj^7j37fi)-F-~0c?q`@G9%(CPnUdwgs{hw@$C2 zg&x-v*mepN5jM^tby|A%27^+S&J9enua@;}XKBj=9PAK&iCjn=%xM0F7%ef#>%ITv zddKXq5u=>a{7Q1?TQeOQfANUXXjNO3u3MIwznOiB&}I}^`d%Y{JgMuqtC`i+(&*4# zuYPS!6@nPiH7n!7TfC92*eHsoz43VN@Z#fjMsalo(~&_{eoCdal>9;Mc|wu281c(1!fduNT)m3WroVbR zD2*t7T2p&bPtMgw&(@p({X|Y3@)z>Ko;ZT=2_cE2fan)}=QfGX>Rp>b&6(*mt%35! z9@Coo8?5m8ucR5f#dZdR&d_)Dv#eLdq);opb9xvQJ$Mn%mNZq!@gY zby*8$;qd2hj%TD>Q`$~?uLo0`RqUsoo&_Kd44S(;`Oofb4yOH+FQjP{&sg)H-O8`-UxbNrSj@~TFUT-xloS>3k~jGc7aI{Eww;GG z?Ie*f8Sxw4?yRwImXu7^#Fwn8ijR$5@PFeq`A7*8zOBrmoN(y6#z1GPg68aSg`L!5 z;9O3 zglTNOHu?arQpSk2tDmXxuDYp)4?(rox8I3jd4T`P+u_wjhb<1{Hp^y|*cG$zy#hYW z10HC|yAV>#X?t5s=Sycnsr|Lnu7L-vS;Eg7d&YUb^unmPI?>zrN%u!T6fe&+%@Go#~ZKZ71Bxh1yrr5W~Q0wrUuNAx9rgXj}vysoCEOz2xeo3^xaTl{JLNE(pxcUH{0${HyDl@{U z6HR>Nj7?U6HMEwG0s+c}hb=E1q((3k0L!3N3;dd}B;rD$A{JxI5@4toB%%QOR4nr~ z%DI@5{fNEdH5W?wueTwJLZD?kD5hk`YWB0#XowQLkki!)NH@ zKmd*{^+@G&ijTVXF8X6bd>HvO$N=O5-$mg;I*~Dg4J#2V`jLo`py$0{+L<4z4sFAYofgr-Dl~_xVb`3CeJS2 z&V`rF@1mzxA>yt+?-<)st$K&qIm73k%FtP;O{3G%AK@r5uJD*4nIXl6yXo04oA;yA zk5vd|+a2>0pNWeVMAAs-!V9s;Vu!G3`b5fp1?ey=1dj$)2t4;bI$~{-pqSVTd_Y_; zb0L^gez@APJ}{kyD|V|?ZtU%`w~Dt7$m8*&R5j`7f1uFDA^2!#KpMtbA;&6Dsj`Ux zro#nb8b2XwR!DR-c$yLNAq9Yy4T>jNZ5=dBPbHH@nE@N3wE4jy=b z_MkpI@vxUmqEU+r(UD67o!JYYS{RAa2{{4J%vfZ-Eva3Y*VQ7rs}T{K=Fx$;znFoq&9L#QXRUEw==XnZ=A zP*3!)AW-{r%g^o)IwKQ-(s3jnAP5tL0-acvfVoc$JI63cjH|#;87x7T&dBaJ%;<^j z5F#k^l`cTI<`=44di?7JOU$JZx$({DsA^h02Nx z2NC3wi9XSVn5pUcFSAg=id&IdnNY2aQwg{nM_fq--4N!0xITgxN1LVF4h;D0YzAX9 zW&V_&xP&~D@!nW73?BA82m81!r#XNex?67- zaE~_gQ83DErzGSY;{Du>2ps`{)n?%z^w7mD}8iXv^RCsZmkFVh$`6_m(Az+f467qiruc3opMrtG(5iJIxID zEH1Z?|3YFFPS8CS`uA9d^ol$izj!qodM{siw?Dd1Z@g+O{dT$i*H z!&Ue{<6?Iz5iCtFc^`4vw0KB)ucX&!e@6>^;ve2} zeEZF6aQEfT0_8oE>%)-MPlz9eyms|wGJQ&6vQgqz^W;B=)-%y~|I4e{P;hxN{o!KR zA1>xz4|bZ*cOJjJJ4yt>h=cD<9!7lI@>28U2IcxH2;5{{Z+O8qoLeZ_yAyYrD=+z~ zjdPsqo4|h`dHx?qo}XPj0qsT}hRpE44SApJzlO~CA48rK{P&Pc*55zeP3ZAIcc#|+ zvTEa>J5%;>XA)L-biEA(^*(^7-f9r`UA81We3#xV|GLUQfO!AkUZ!U|_-g*!>-?{) z`OoY8|K)19l8U#iE{VCdcwEgQqen4J_|L{ZbUlk2p6%Sy#V279w#VT7K_=ZPZxceI zll&p}^rNeIV-0n(a`nZ{6MpZ-^vah0y@p%m_WQKP^t%SB!^Jl5F&Dwe4cIb;^B3Y3 zKH~kV`rt_B$+esJ`QFQiWlHg1%hb!eYhJ0_h1r%4M!_wx%FTXE$GFA2dwUDaFu*Ft zaDT_2eQ#&8xExP*dgi@X|FFPh-ixLeH?vHs-(5FI{KuPH{{3bhu==E5?Cg=9xC5*g z8?fB+@<8j`k=s{?dS`gY#CJ|dUhQ8G(nI$r_Xq_xey$wy%D%e6MWYNYPhOtrDJ{2Z zu%HMV!PVn$`#y+6kv-aqGdbZYm)q}mIc~>YC}X&#bVNMkC6hubJzf9H;=uDs?NzGr znI1CosQ+MrejwZLdzH2rCo{5FuL?%Qtp}WfOD|-+G>hN9^PAvBg6e$yxkcjrVpZie zsU+L+o15=KrU$mp0s@1w?nYWfIemNErv}OLD#N73Ff%c%*dR==A3h+_5K2h@&I%802Fbw*3Q!EQA{B_9 zv|MN1SXHQ&c4vwVv06qV{h*_beFVw&E${)kFBZsz6F~_GUJeU_1sX#G+7aqQDq$Ik zD=m~6Lyi@VNX|5HEG>jg1xuGT=uwcqgWLfCYtg_p1f1IiJA+yVf=1}hA~i9QPhO7d1kN*KWd`>{R% z+d$IG2K>Rq{mLznP!YN5mxsYH;HNoURH=6GIA8T|oNHl8S(((4>zp;~|(kg-2 ze85hc9F&Cg5Wz3Q+84s=9ZB?GhTemKzm+;i4pR+>U^Oi4oOLh4r{3^IAYDg_KWDvqykA zK0$;p+#vY8``bJBHw_wd$Sxy)A>S_bPQTO~hfLh*k^#-trdRsQU$^+kpGI1~T`Iti z1pjlOMIq*o7kXCXmVkS}^E(O~utci|u9O6`jILhl`9lsgg+SGy3rX;P1sw9$@CS#; z9u6^_ok-lfF13tsFZME=C3?NN%)Ap&_;Sf+<}qCO7gGI+!Bwrz?R|0rTt-Sjox2LUtA=yRVvFbalKwu^cT9%<5ns~KrrVnaA zxt5;161%TJ24XI~yq?1rB=zf7Kx|H%dU6_9@}FnPnj=BGI`9F&9l);sb(Sv{#~v(g z{`aLHSvHy<-BDZp`&w9{V3%KV_9X-CZ&=B;c=gtBuKUPYI(RX|J*W$JA-q8yq-L~NAO=4^Ur(y@5^|-Z?7i* zLPnfnnNXs@o6GN41mOBX8R-4DmU~aD#VuZiHPwd^C_Rk87#wM8{=Xghf4)cNzyGwI z#jXE&MA0J^Tq(nyk@LmXMe$!q4wGP<`u5>1_zI349y)I7g4IzRb8PGWc1 z0`L7Z9K6HnKi(mCkGG_77B$zwoJJuKf?4aYb8M34t$)FgAk_UM>XdIFSyaF#@P8h`Tyi z*`IK>!s`mq`9ygH>jU#7Sa1V=g{^QstmMbC1d(X*(I{LIg1q-JH&&%J1d;TSky1+V z+8Oi(bT9-bn~GG*FA_y6x*#J`CRzwf+6P`*M7Tf%?23h=Ga{w_*#^t{NDF00A}%7d zqH#$|A__gIS0Iwu4-5wg%CREgIwTi8MaYLj;xZrpgdsa1w4sCOmK|2hrQ=x2N)gnm zNXx1w2gEBt(Gti>Zp;dFq@p;a`JAkbWq{$3O(YG48AJ>Xd4T>;57K;?ybF*VfCdZ* zz);!o-GF5T>SH5me4x2c4FVKJKR}Aj%S4rc_m_0k83t|;Z1eEs#^xYsxnrnl60j$V zKsjHN=0Drz$ENKyYJ@pbo&m>T>b#}zF?4~M5rs6bCYe1#w^Rr)1I z5zCq~yi)d2S@P6oJ|-nOmm-$2gknC8iNwlV;g~mE!ts6U0P*>TznREBT^hthWl&*; zW~mk@Pt#xdY~ma4xIEGOd97b^ZQg!dXGZ^F>beYR$0lu z`issFjahQOq*7M~C$e{DoHqx*W^z6LLthT^pzq*!+gZ_c`v!~ zZ&!L>*^a1ge`UiSKm%seHqR$uOH+D8!#fB52g*PyA3_t?7Qi!v>5?dh9^}{}m|QC& zmJs}7%vj0|*srB;hht%F#aNB;iAw2_>#5-HVMyUpP`K-Qah?3#P!{(B0iY3#OjT9z|uDTY*G_oQj`mG%7DFE z>P1**RJysu#K9Qiwq3$mC zZq;s@jjA(uhU(O~*Y%xvj;*Uljn$58I5ZqE5?U_LMF?&Az{p6NIa6}f#Xl@n9ap=jR8^5aMaJp=|rX@l&M-0@5nAyyY4Pj@JOk*;pJ@WL#pevsPO2kRuz zoXUb6Ia;3zOif8Jd8k`yF&yVlc()jmY>}9Mz!zY@#fpRg=TX?ar9uU%)ZV7n8F~WY|ALRS6!f&|+n{PLap~OTe3-Zb! zFgYKC)YCs+lQXe(RXDp7nX&bIE0~U8ZbGp;EAu6)z_b((e1RbqI|4ytGSaDLRUma?~}?cw_52 zZL@OJb;o%>mUR_tE!SFy_gh=MBqe923IAo9Y3NqW9WG{NA`rqv{56rC^c$}Jh$;5x z(T=AU_$-_S8L|?!u|iq65^k9o_$Br#D8U<_00~;X_G~+dl4So(g^(?6KiG#Y^?*#J z^(%|mQ?Sib6d^vXq?Jh@R}|4c%tyh}8v+_ikkqLHkiX+8{M>$_)Kf&@Vrz}ehw7w) z9Rj*gzfCBB2M%N}>Q2vOA3>VG`XJBA!imcV`$d^-`&wt7!EE$|z-u0?G(c4W1Q;pp zaX6}r=Ll0YZ()9wRKSrY8ZR0&Ti66W7JzXcOv_1+Dh*ztUbmf32MqFn*&{-zb)%$! zln=M_B(Wr443b8#HG2Rk-q0;o+E+T{b0c%L=!S@sh|O<6XRKcMs{EOpW;VX<<-vMg z)!$|>2npiB&{})huP7oD%Z}o`DhbiWdh3V+aiucGTK((~W=jH?Y3qq}v~?8ZcvMta zXW0IIAUduIfnF(;i2GOHPUCvxTXCg_a8$A5R0*u%qhY0rIxw?P5Gkk%eBj?f9tA5( z;%JgvW+43_my!b0s}-QWesb857#R2~RD$!2PC+??;VZQT9Dl{3q$CnM78dm)JQlnp zm|8yY(fZF-GZ108ureeT^gjU`IY_L(304;QbCpOs_yPfXO6ywrR{gOI{|Ame0Xc%J8vw#<&tiXN#<0Jl$c!-{I21!jdCwOG8F*_t zWFCW&3MDYK)t=yVVu+57DT;ZC%6)N}r%~xhO4;$M>zDmXf2aMl5Zc$Q@}!83(H>I_ z$?ic_A#T&svrVwGdqo8`?WEMC#PY95;zykVl}+Qi=5PpK0{f2%7eWIYK0yOMir-fIOuiPI zWtOS2b-xexeAb4YO5QbuZ=g1R#+3QtmKMNEEO6w%p0A@t*%X$lyNOxo*S$BKj27-Q z{GrmBzMu2=nYIn_kK{U?i9!tG{MMvJ1mSFbNjGfaAFR4-LRlF5VuUfz_ECLfa0a%P zgP!9I0CSn(ivlDt|6V-qbO(%2b|ao%zbIxm^6W0h4rzTc{%yY~8sW(TeJYvkqwOFH zSQJEj0X+JJA$nKi2y_Qzq|H`RkMIV^6@_@VVM={Clly!>gzng&v}JuN`0HHsZa&~s zrsS=FBP3b==ST%RCQ=L=c+sE$_u}kg3!msZFby|U+CaYya#tEuN!@%1kVQxhZptF~ z@6#h>z0jw^1XIxg#L2;7;8B@RF6%>sDtz%Ak=#)hAz_~kQ3%ucHyPP?R%O$!Pg-Mj zis=2eLcYU29KgTSo|MkdUx#Vh$*llkvgZ{GeExH?B;Xmi4d_G#z-&hf*wwNs1Cv%* zRtbFFRDs1N2x&cj)`a;~@XA=K%F3!LSa43yA#nC|er&{EW}egz89e|@Y(_=0>CgxFX=9kEt4<^p}V0?C4Wst3pf=(FGt{PcmhlQ6XyYEY>cDIHv> z#mn)SyevBzp^8#hK1mTX8l)dF}&kY6sNSLp3pS6&fK2@^|>e{>mngmdcfR z@(Pll_1ou*p_(c(u+qqoj6b!M4FE=Y**z8ok9(}55KKDv{kN2)l8EXv!amCjNmbW) zcL+^)@22Ts}sc-g8$_TCdR(Zi`NpoHJ(MZ!}+(P=Hjq9}#~#`jG0N0Y~-a zxAU_wXoo2Vh5?t#Blf8S;7M@Aqi9lLhH|JW*={=VXmSho_x`lQ*iu=K^{vQy!J7m# zmQoxFXY=rQamP6$WT@(FX9O``J19E3t}KQRpAwKPP{x zykfp%eW@}%)NGnc$$O?n0ygLAmvZ;?lUv(n8&l(^T(?f~0?TV9sXh3lQ_L0!wLT2T z*TsCbR+`lghEOx(@SN^aC1`&=zpU(%#xr@VypL}0liCh$b>5DHZtv3_%(s)e-TO+Z z&a0QjxZxcd*{L9gT2`pi{m3AZ+QfY=uQHhLHc%MSzVnG#yLMKCrfW*8jW6QMmw~9L zO8(zb%R0&}B5i)PTbiA#QAZjTnio}h?xqL()`C~`gEybOJG5_cwk60&>ZdozeisW+ z{xCSg4kSyNWJ!eo8HkbU^#;Y+@Fv??b?7Gj*8mI6sZ(YyW-6Mpg+@z`= z>+~+^Wd9h2iJ7K4wzB6Dlxo?M2Q%P{M=meJxQ4CSD1SJHak!=*oAw$?@P!9zMyLdE zsG?z59PLnKH{!pi_hp+~6P5}G(HPs;^dW22^vJIO8g|W>*^eT+JKLbj*4E=FWuB zm}MX71M5a?pN&{y8rqhE3@Qz8l{Tq8?{raSBiv@IBzw=h)SMFI@W!&NG0B8E=%hvI&xwGQ4gWY>yC=swKigl3y}-a< zNPP9+(X8M#*17lDHx`{n_0ki;w2kc&|MTSAk|nJw))jURqZ3}4lI5zTbGhjK;XV$o z&z;1GkyH*jLKL{yR&tmmc}?y}jVF9RR1dvISEua(UnA}?((^syeStqaZF7MySbu|A zfNM2iV4!@E1&IZYkQCY$NNxC4FS*8x&WkS%jT>uB*1~JTn|tTAdRs5&B|Cn4`1_Jj z)mjDS>u!ur;mRr7oxk%c(O5h2C{85QVPetCzoEFUC<4~_M=i^dz_G{k0MRY#*u#0p z_)cTuFC^u1@kr7;s2KI^#Y&Bq0QWuJVZs&Z&Or)BDz2K_J>R(pd#*KM|7qtH zQAlIFyf{0ri!wJmKH~e{NY5TY_RI92uEiK6_AAXdGE?={ZiBhk?ou(lO_O3Q&)33! z+g7K!TM&<2Qhl^@l+%=vLJI8rsK+l}q-rvfeQy1|6_(q=qTu5%e^{}QYk|wBC#pVV zHSy`^V4s)ui703b0yw}$#OO#CA%tDMUy+@$iB%aHfF;!9vIx<6%ilpuF*x8l?h5Pc z=mY+fjj3`1!f78!CYk9ZeL+J9&_Do0I1v93;)L-B$k=w)>y(n{gHb3*gXti_SF~T! zzQVu_P$$PyHWdclNdPY<2iq59j?zL{%806O$)AfQAv`c+z*dYZAFfDR-|ys64=oYL zk_l*9y2>4Y`(qeMUKp3@z(lk6R4Kto-PO=2|HWsj?ByDzp>*nO@o1&DnQWxdxYDw~ zwcHn+3<7Ecz*d9`1XihdARnQlQlf`oAyS29F!*eM*hH>Ksd0yZ3IrM&hIZD2eF8Wd zhK?R)gyn^hfvw-Eg7XR&wKt6l5fOpX%&JeFSUP??saba%NbQY=$>E{##?F1v${M>> zamZ4j*j6!DqUC%~i{1H173}_m0#JK?5TYXJgJ1ah3&Z=$x<3&DJ3ttHp#muYK7cL^ zQyB1phYnYTX@Jy36s{m6`x65z1$+U1(WA=dHWc&`%JvvV0Y@BZ za@lww8BSty0Cj`VOHX<_4oZGCO*)RO4`PqF6{X%jf8{(1w;qE&*XAI!xkg~#k0%zM zBP7b@F-DD?5t=yX1^hm_!Vgv8(w|8MSbul%Q)ch~i3xlxJNwrvZr_|~$4MZD%bD(H z6>R(%uj^wwz_C-E`aaU_*l3)!rqgJa9!I?2HrHouUYI7T$uFf-Z^O46=-!SWfdAcY z{A-wzS3od}2CYQwT-n!05!UZMR0Y$Y#hnR?O58AHl~gJ*S36f$rAUpq_O$1vln8x_ z=%#HP%giebvw5>ZNy}G%s^gv(PU*kMr`qB4)1@p`d2dm}Y1f6;9-8o}m?peKj&UFR z8t*wzRO67npx42hVupy<`wogk0V7obFWsa6LK-b}!Z2Bq(&F|`ZC;;gyk?!54;&L| zJ|ZJl9wwDNm{2OWR#SVs`2F{kd$gN?84p+*-6l%i0PJb`WUa+SPt- z<5jb+XZne7+eLxzr15r?f6!%QSxTemwPo}sKS9j<3nrn&0T*Bm8GPaWR*{BiemRlK zuxTFW5e>&T5Tuli>K0J_o-SJgBkCBE{mt(&i)6kw-g7;64cbwEA#FuPY-%wco)`75 zGXfEoZ|)d&yb{{)P36~iys|a~GN9$L2VR33rv{#`CohU$22Y^uo4P!q7qEVoYyvuKqx^xY=xE&yFd5 zVQ~CJ)u2t=>O1w4Yulin0&@Bb=r|%do?9;5S4YsZRV#h64DTwjOs}|b zC~0FEENi=Mqqw^H1PnP_JkR#f@yX z_;zS)!)$-sW<)(szk5L~fV3syPG7XwcJ!nvsmHd=<+<#^VUa)0);^+#<%aCZ?Hf>{ zkzFX%@;G0(ELy9$nZ7PAV|>jJW;@jwwA>P)V{PMkzSqokl%!wTi(b^4*Gm*?bb!nv zvMF?1sh8;xD#)Swb}04I<}{t7&*6i9#cl*i;KJE8!BMsn8BYr~5vBZ2YQi_e@iMkw z$O$yRcM{%Bl#d>>wBOhCUpId!Etys=iMtuRXJNY*98J8J_m3!QaBGt2os`_b+IXGt zdMsvL`r-v56t$HT^)9_cmNi$nn=eGsRH4v&qb1gt?g^u55}ONQ9L;SDB=L9 zm;ewZ?OuIj04HLp121~h09x1Q0KI_7gYF%GJSOBQ zOAuWLdITxIf7!#T{Mdl%j=_Q;>KB$rES82(1T}W>M~S7#7@VWguFPOr7v*LY3aZ%8 z{wkm2RN+)*pCX(}veHM=7l7?hBruo)z&k+WAE`d2$_48?mhf^0{){TQ4O2uPHZpS; z?s%0b`}Ew*;=G_y%$~OEXdcU^Td}3^2(*J2vtb&eWrq6P;#Xd9`-0=jeC3YTjFU7E zCJ)b%rkKI&Q%w|XX-OA{Mw$!L~*yTrgliHiJ8(_))1pqPQO- z0$V`fmgsZ(SBgI?lx>-E;J>M9QpRfN9OkJ81g)Y&`F}2x2_Fgz=QlKMXeMW3WQEVk zD63cyPS)qpMB)@+AYeR&847g5`#*peJ^vDjfSPqbKR6=PJ+zj{iSIx@2KGn30I0z3 z^HDMH3C~S)0=47*aJ<*##`a%ZDMEw!pCQE%PO2bAlTMNb`AbDu)dNAHQ8PWZaakAG zms5lTn2*t|4?9WLMO9cTz6*GMPW3|H(io9Rzj!{*rh;;RXek(ZJzZbptyuT0-6(2CMg)&b zz6n4ST(8fx&&(8F@Z<_?qB`j$b7aNmnQddQ8GS|X&aGzYbLpW?a8Rd1d+(bI$F zx8N*-WGqfexb-|`2pZq1Ao-%O3FU`i+1nLI#W~ZVUbT zPVL8*E-oO)I#v};;dz)%DLc$f;d{?IY}bxe%GItb#VInUM)JLVzg$$ zRe1kM_vf=f%3IhDCG9@gk9F?)3I<5lDOzwm+rNx$lL83k?Q;YpK%GDoe(VT}=b`E? zJ$#feC&}6dS}p`lt&immtY^iQFJ3JF5&iWFP25XbYs{13z!ixsAxB}^=DJCu%P}?8 zEucPHw?$(+XP;DRQfCJ037rK@a^BA|8gB+(@VV;L3Xg7XsQ&SkE4X{b)bG7tUwq@< zTrs*js)wKiRzI8B&S~d^%gN7WhqEp4}PVMr`fst{qIQwBINURZUz( zzX|I0V%Yp79|X9gsvnXNTE zsR!~w35C(k!iZd~ntfT;gcXzR^No?hn87c%E-)oo!NUemXt3yb&k$bb4l3wB;EM!o% zrIY^Aiw}8A6YXv|b1EfO5SQv9A};&tU7I5O*CW7!_u-3!BaZd{+3O;5);TpFRA7iC1Rs=X4l1?T0R5A?q=EzI@xii;q|HvGXNMP? zfv?5X2QV`tk{_Z7e{N>8)eF;hCfWd+0fsaID<+gg7KIMe$0`X_SNS8X=}d~|3M^QP z=5Z&A8Es&T0L+hGB(^G=v#N>dJCKhU`1umk`x1{1gSHs7*zJfUlROu_{VDp|qu z3(WL9&#}80D*<4Zj_`Or4fq)muCj@X0&LB=G(R)|8#^gf0N64nt_lPAEKrP7*`%!P zsj{i~k#3r~AII`1T7R04wn`vmI4Ob`Tq8W<$a3*jBq$Rs8Oh*SaVZcQ3|l~DpH3$l zL7#4a83+psHGX=Sh33m;&DHU-+jY-hGlol8I7&NdkDF$xGNeD`!Uh3lSlr#<<)|g9_9BcBe&7;LU!);hPcx8M_MLn>~6Q zg#%d63qW~izlMZH;%&V<*?cwno`ZD?(K&i`^geq=aT zI{-<<*u%c2Fdf*vFAa}XjSJ|fBQ9IjNf)?u{MqFX!((6e;NkPkqqt=>9z9XG^xYu%V76W2a|0LDcOuss&UFhleC9->6yln?lGU^BLXRHm^Xc0PVc->tkLpE*FhT9%&`KJcCF5=H@#mg>9z;3$JIXK>d`Mqv6 zBW?(IU!`TOoVue52FgRzNl2d@H7u@;-xkUovha9wjCpuP7@RQFCu(V%9@KC=@=tjF zbIN$Vva>w8o`M+jT=a7^9u}#lHoeDW`wqvFTgWJp7Lj7QTBoONe4T)tjca_a`#_O< zeOwnZ&#aFB$kEMT$j7sJZ#IkbU210A3fzuC{g1377ZB}VlaQ^~ufCt?CeV*EUVqV| zE1tNY-;hb%`1FBSwS7|{+Iv2wtgB1J|JLE=KC-#xN7j=!$dET@FOyg zzUaD*8%n5$#juA0H#E1au$s|^=DXPG?{rmYyw=wE0kiXEJu@sSg8?tB1z79oMV?vQ#i0r$uPxgJ^ z_iSUGu@AG*@9zEi{?GZJ(@|#PICI8*KVR4Lx*iw9^1}(wlc!$`mzffyES7;X%FLjoXC}Xdfe82fe6Mzn=j`apM?(pQfzS* ztZn3l%c0Oo1v6U+jgjx(6@bHy&L2y<1yR_YY&o>+c_Lki@~*bYtsI)9U()d(6lgy< zs>IH&oPc2YXeOn1n}nkAYi8YU`BK#JpEv?GqDy zNu{M_uUWibwYH!BDF>CzYe;HFGy<&lR#r6Jl~rMv%b#S~+OrHvQw&jD2#APPy}2)3z4pB}r7E8KR!rZj z72d(+3m~JP`|AtI%XaTk_7&6V<|H}j_QtfoO-6LBHit}?>jKCc9+TX4Q2ExWEIFo{ zRcs<=PKCy|D%yK%2tlvd+$)h@II=Q$vr~H|U){th{fMv|70??TD?$K%Q3E9Rjl~F& z@hD7vr$xz!QMJH7}KTyNIpXdU&JB50t`u2ez9nO&0f-R!c_PJLMQ+B$Z+?YVhV ztQ&L`oHu%40ukO0$CDm|pvg&??%KWLLAwnh$h7AoCq;EB_8ev9bcyQ5n@4=$QjDPs8yyu=B*@MyngV# z8MhHh=Fx(p!Z(&Lwl{@-(i{aSM21qLjE)@e>7W5I7b~?qu07MG)f6@V-m}&mM^@|l z&++=Rp+@QSBekE(0=&L7EV$&Ki9|}8CXMuabqq?)t(^vVW^qdIG)Vh*_Q?dcR_`yI zEM=6&%Xz)3PBSP6LeCs~#zQO}hQDcE3~X(Y`)vKo{5h`~t~%`6kM&e6qra=|~&ugh@$RJd9{fi@BQOu5j#K97&DA&iW+VsS3M{`*^Q_ank-V^DC8z7c*!8luGzT)HEkYZy1}$YW`5;uGx#w?o{x%U*9F-Ri;^ z=(@iwn?j@UO0Q$qzis;&IdbV6Qn6^X0aP5e3B^#*BXgmkL)ol;C&U>TLgjt~b*GYQ4X;ah6;JDj0^Qr3Df*FLw za3Hlw#E4ns;<(aUtnEdIw3gkfL&&}OF~=Ily)(`L-jeL*9{1CPrG!}&PWDAZr=Q9Bw)?t{(dpOkatqY={(F)Bc$gYBHfXeMLRJHA_zBI? zu!qdpOA?hF`@N>ceaXP>!Dov$zA&5NQ94_tblP?2h>a~N-E=YXL*hhhRp@u?j*}iN zM9tA8X!giyZ+kv(YWakB+O=BuyK#Rhq#awd)@$al&mirRhZ!BuW;^-;1;-^UGWjl7 zW5ys=_yxbQ3B7y#F+iwz@~j(rJ+N;UeN+tt?rO;dNW#(~+HNUOY;fNv28vTTbvw5P zjHExyLA?e4_vHVc`vdO)S-U$;I~aOWRuNOrDpC5|pF;wa)O-Rsrul9fUF+GTq(S7- ztLirTCkz}`We+b@zSOA_mT`A?Myyx#3a4ut8RU$0>~bzVYvX7+G}~2{9R*x$_k&_1 z<1SkQ{jbztUfk5V7R2{7At^}C7iO{Noz@$bw4<2YChFxPN)@s+a_#f^3;OGt4m8T<<=cbgWjJ^F_iWh7xLv9{+(LhU(UOFIsac;;R{tZ z4VAxdc4#M`wEu0|zUUQXQbuu;*9s zJ&HFkKAxA)JR8w9Q(eQTei92VSPpvxm}8VEhn2qkes$+R-%A&8i~!ad3I>3$Mlv|{TcOIR+qcg z`6$H+=?yuE)(sBe5V=TYvM(hOk#g zmJd&XJ{gO;A3x&wq7_uWcDie_YStj>C9Zz$1kPDsJADE1qeBijQas;ZF%7e27tiuJ z&7|nF7z_d;la>HsL|TweR+C~nmE+SZ1{0<2x8tvl*tD;Dc-nrm*&OmR&*8OOv z_s~VD-uboh&u$Zg^ziEavFMfj-L$}~QGTwoYBB}62qW8cL12y@3Ct)iC}wW{7%S|=YWn=bpGMx)F1+U-QJHa7UU&E04Q*pMl)Ezi0JHae zSgC4KOj=!-OCci!DPOZ^u3ylCQVS4KH=Z^%QrlAdy-HIWEnZZQiY3)6_Fk_4jKT;# zX+(4e?UOIpdP84tK{UYK>{!NqKmQTmlw{_j&ZRzK4^-qdgOxUp8Lm| z^LFNDSAUoA*&-r+$(YeX@B}p2fuAE_yIih{q}X3AHa)h7XW9J8czj|&NLW0BMhN;H z*X*5-uGKE6RN1eQyt$^~Pm#30d*PiC?Uv=PL$K(oq_yMI=PidMwSUKt_W%F!Bl6$z zBMcYv^qILmZ7lQ4K=;iY;4Vy|R&c)gr=(r#zK2I^bJg#IOz`Vx#n2YpXcAFOxSH5YET$mp1DICX9O+C%jH-~ff@6XCfoev@b|wN4T}b(&>_ZmN?% zw37I|sR$%VlQJPO=tF05!7as~f{X8EGarBF!m-2U^I5qV5n23$tc97=kZz&e+#yO^ zH1+W6nT=SJQwY|Xxnd+B>#cv3oXat9!}SEL69u-hd$?-!Mm$H(+X0yluB;vGx0006 z5y_g8s-Y!9;-=~N(ufaR0~*X&G&R^*aAdJ`r4kl`zLi+5QZ=P7^_Sw$=>vHEl??rekvLx{aOVcd&PE#Eg<9U_5T7SdZ`kio<}#JYc;2bq`TQzT+8qW`LjJ z7%-fip7qLUkLjU~P;s_zOIEXZb>&Vm_?_Id6b0fB#3KK2KsqhD-LYh>X`a8!?WNv8 zFU{WMo8yWJp-I`+ZcsR4<)f}N-^ayAbKr_OjbMes8|m56mcEad(IV%WhiPn+im)ou zB<}3nTEIz+N4nin2{`_k$*5Wni1hF~;Mw^v8&yeHwKrty{suo-SXw0+b^iel%#qvY zu~q5!o7;Zu5!sQVOKxNFC|-|}r!oix>nayL+3pR3#DN$!&|6p%lf*)qjawAyl-)Zqv*!V%j!Ezw;r85q^FFxI+wr8FaVot%j1M4=e;$zg~Fr6q7UUW zp1Y=rMZM}R`XthO%1>Xxw|RbCh5?fbh2{X2A4fraK+c>VnPzYrE4yG`qA$cq*65!> zl(oGP_2#gOW~VW~489fhsZ`$r`<*9(WlDgpqx$_Nd{utFihwe~$Y8p6raxl%AG7j_ z?#U1P`PMdrCA^T*-0aFhyp;XpFEqRL|P?KdbpG7lOyw9TGf6#=n4?=5rLNLRUp}Z>gcX! zY#YwKtPTKt0@n=(w~!X~HX-i!u0}J^ewu@AOZrDSTU|fC{yhl&Z0HR^U(j?=W@a#Y z!g8hGW_DxB>kW?6A_{9bpEDc&L^g6kG=cesTFj@9mHoFFu0A&oeZ_&V&i43e_iWtV zCpsu;2g=X?$5C}#rO!+9E1t9HUjB?jx)?f~pEEY|CAO-n@mm8^{1=#`y+cQ*v-7QI zEFF(Di|iFCC`9H3jXiYoKUVYBU2iPJ%@?kfZCfh?Fi^toDQ?I?Qr5aGC3?PSz|e3} z(b1E705kg?3jzgp7nPd#CnkUf~wO_E$LY8WEN4i*r-Km+aZjrZ9O2Y-OL z@7LwNJDL0g!1_@1E;*sKh~{$e@D9K5?8Bkwr@*tyH^N^;RVuf`sq zH@)W~int>Ybp42rY^%w^S&#E30`7yq%VLfS5%Tj+q`Dzm)=cF{2N30ys)}w?PzX@K zwf#@WJ^<_p4u0DqiTV1+**mQElD%Jt4xGFH;C^#V5xD)q(db4OH&fW|_tDiFu|EdF zYW^br{fP5t$y_$7GiU}RbhZuCn*zKg2p>*=%v_y$+!xGCc&H0EFPGSh6?kTMHjRUa zAT;8R=Z;r43X1$A9UE|+o5o4$xoi3J!ZO~tLxqF#g6)h0%am_an(wqJ`JMt3&&Ohg zhYY~3k6Wz;sKNXt2s9PGrkIj|-UeJ6VfWI)gT$7%6jeW0#OlMkP(J}{T=~QJA2?@? z+Z-=b7mLlB#@?7&sfA@;XE(jR8(K+V-S0TAb`rfjh7Qlf=nFHr1GU}5{4lKVW~qN! z6NImdO61;;)EUcV*t2!vV47b{F$0Mc23I!Lg@43-?h{Z|dcn^XF370;HMmQFmti^f za{k4904w_YU)ly>tK7dBs|9=re?f5xpt$TX^eV**jhK<7nHA`yZ73b~!M|5(dF4ECUGN z%;(kLu3&0!2uA03CDM86$R`SWDSl@aW7(Cs89Ng6qQ|}=hRU*IUq`+>e$wNLpqSyG z48Wrp6xM4|CqTQgaFYVS{>n;c0>c)x`4xk8CqL#D>o9a&-Wqn7n--(|@|yfWgoeb0 zbdKQVxCc`(aK2`|LuSoS=^_qCc3Y0?9KEu{(eveEq27t0=y51u%HK`mrd?dC0q zcc}T6+a|qSaRZ@%U>>uxYmF!E zdkUs{()|aO)!6Bk6V3&ABvNc=#(UPG+qKE^&itJ)ZQq*Mz&DW?chHBXYCnQ~VVUtiuwnL-lYXC|CU$`4-RQ?_B-ObR}W^aVOraiY4_!Sc^A1O zFe0t-4p;HuUIJ&am`q|OU&U%RA?rHVT}fn-M)>B2Ue_T!FP>f2o59h!Vt#e|$SdtU zG|r{?K|Qmc#@8*HXxvWC=B&g-KZkQsz@WGp-MiCwf20vK>-%mCR`xEs{eLOSvxa;V8<4FI&1ni>14kR;MbzmHG=*X(l#GI_3vc{}yF zMSEmXy|=(|#b!WC`>yF(xHt9~BvEa&SZyN~cTn)M^?U2SLm*F}c|rfM1;N|4UQR~C zLO7?7=yUqEIfdU=0wwn$4wLE^vM#6h5mmMeo!{h|IP zDx8!Br0zIU1!}rjWJToJOnKzwyf+5=o}`L^t3G*~hh9;KYJlOEi5G zeVj>O(}}nw{{48hXX}?!$WxWG_sr{ak+;n~w*!zBkU>4WN)Mibg=1{Xf}dMD0c8;0AC$^gE;*|S01WIb5mv^R6y z<#8eqo_by$GF=KXG=7528V(5Va&dY4r0Moq+9;-WK%L{}#AGG$v}ueW#*6%l4r`3V z`Zz7Gu@S>Xcsq^inuN_Ala+zyl9`egpJ@2RVejk@Qz+07h9qc=x&v)S8oe9ndH_?g zXz(YOt6($wYq-mXZp=LGIdFMO)&Pbw92+TkH44(2QZ`YV zD2rDlKiK!grNJY^h=tAtbI)LTCJ4_8F65;{%K+?aXY9lYPx8y$>MUWGNkj_hPJId5 zRPq6SGEl(NMndMiYw-qOd;_JzS>Fpz>gEjadLdjq#U2~SkA(<%ij*j760?dP8G5L? z3z#k%U^RZ@9_+gtEgLOZ(q2(7z09N9(>>`$Qeh;Qgz(wVw0pCGH%V!R%jP8zVfgJ9 zMAL(4`_P9z-MmF^u#TvU=?rKPCVh;~GZSkEh<%bm1}7+?u7q#tepy8L%ZQ4EMO4tC z?*LyxfC%`Zlx-1S4#iovlFIEkUpO*bZhdXILn@2zLhGLcSb_%Q%otr8J)guOadT^{+_2fXK*&)LG%cLX;v8iod_*=tNHO z{6^kIn~c5{{MBh(GdIzrH#>q1?hl!A+H~BQ6>$rT;8_JN>)DV@)?Hou5sGVb-${CU z+e%!*Y%t(`K2y>xVE{E5ED8AJwS;^FREdCo*=-V?Obn0qN=~ZLDoat%E{RN5Z?iQ} zg;&c~#f$Ji&bwZp`XvYwt%faqLr4@dt&Uk*Ltiqf`%_V!Ks z%VqB+G7uEtVfxP&v6q>i@mPeH*LGVLXO)*$eD3z}5D(VxK#Hj@_osaqIIw(MrE26C z(~V>-H_(kRnnQBofKA9}l-TqJUes_}NlnR=khVH9dZO9-YJxsg1UBRi?(yk7W+FQ! z-7jV&=^DX3d}S-(bws?Zwx7%PUdDEm5k3cI(dY?R?$sk2XNQbAf<(w!px;agkIvuEUGs zSp{?tuup}d*t?>2|7Kg3;II9vCcN1dpy-GY`$UQoCdxm+g2IpV4_71j^0 z!?JsIkMKHZ?Hxq27wBoxddSulr=p(@_!H4;BcG{fNqAXT`y^Nx_ZWD5+sZP@HE|DL zP++(FEdFyunk`UVx@_|<cm}xwnuuF0KpQe=#;~-M&I&ezAWp)U- zcsrT|@797M!ir7vE=D$L%e$)FiVe%pzLp=Bxpu+P<2HkJ3off)-ZjO($@)ju1MCah zsO#qZzw@u(^OaF<2x5=4QC6_!PRg%mo#^`sdb)SkHO@V9-p*ry|8T)PIw+dg``fmj zoDMg^AxRebAngLqRA~Z7+)@@`S$`4%2J^%tM3RbhRMw(`loFsN=|M4bFzwZp`&<6H z!<8;7sbkqMsMEslFeAaP;TjM)tTqPUrW zZpshs`A(rWLXjZwo{xe~OCBJ`30%X&p{soL~V&yK< z-FtLf{^LIb_KnsU$~!^9S`yKaD<5L8E~kZ+JTnKu%4RWRfV^7wgN`-|u*< zYthB>3~`pV3(4#eVFTeC0M8Kl^IF(|W$^MZN=Yf%YZPJO?+_O+|imX}ja-7 z&l0jQA^FVtmOonu#Y81=v8_NB(A`^N}RCxN3J_TtjS{iM!jceLpc?vyum$uG{ zv-NDNl8WsKJM}^5qC?X372S8%HYP=jiSnk%`;KpgIK?-ljobM@4BBK9&6*krnY>75 zuWiZE%GK1KvOl7I5oyN3wCkib=CwebwKJHge!@=vWDlM=ShebXZkiBTgxWghx?pcz zR};;Wv{@`-X@A#jYh4cWo?c7!XxqS!$7#5dly{s69+`qXZKU1wy9=d z)I>k+R8-9`>Q>li71_118Cjhdc}ATSc(WG5#J0ei(?mWr?O6;hA7+O_Yj*q4P$F=`b+Vhn4Tm0ayKA5A$n2spw*#~|LN!zSy}6M82k zNS{IoG`bd}y^w`sa+v68LRatb?rzSfX>PH6W>@w7MpEZ9!K zAAr;f8&(ma4Sy*pW=>Ecxa%|cN$h0x_ei~%||_z=Afc*dFB|EC(S68@>i z(-7zs;u`!p^2&tuf#%ZQv_oa~m3>dQ`6l!g3%9=%88s3H6X|pZvmS33gW?h{^C$4x z))|^UIQ_N&5MVs@4V#{B9_S%!5)7 z@WK5!FCF|VABMZI^aw3M=05Uks^4z?zWEoQhDhOZLuO`}=Zxp%%8Z)X)fP?~_U#Ra zwN&oCr^>HhqI9WB_XA|I)Ssah^W|;!hi!usvSF;kaCDyiu3JZ>(GL&SaXwdF@ zi>_yPN6oc27f66wwq@!cJS-gDUeKpCXF7UV zFMI@j7|pYBY-+4e3Qt)Mr9Ahvxz$ALUlNeVBzZ zO%jqEJkPg|K#F@zl01la1kd{8K$%ctXXWY-kEu|jvA$~j@uSa8 z;8VrcCJ8rX>XQtARWfKB;v8UA;w_5JdEBZq={OM}!~6ydeX+`RZSzqNo~*02sI_6r z<%XF!o_i58>LyW?T~hJ8V|hxL%{%e^+1%KENtp9{qHoFTuLs7y(ggIvghjk(uL zOdJN7dd^U(jyl-XtB`@frQ^8XMNcEJoxdsBlgFkW)grf^^(J;<#>c|!Y$F~fv*`ji z@0#`X_KS1D9H&e5#~OU~;Mz9rUQ04T-tS{VC-*hHpVRr&z6ckmb@B#%jSwlW*Q%WH zPfXj=nQc}X{MmX~KFM~LlMo5HeKLCwvs}h>hg6ze*T_##7P{l3a{USO-o@Le#My){z2(olz=88n^>cN&y={ zw@Y>m*I0A$o^cg?vgeQuZgZ}4A=+_+VgmS&2b{;}THV-dnKneBM(lJ#<(E2Y)>6=lq%!i#a7^&Lzhfc}bd&3?&?u5WwB;>eH zKx|6AYTV*2n~C$;n}=xEg+q44%DjhAQQ2n~N$=_>BnQgh^(VN~ID!E4l*Ql5@5X(K#DceFXg&J5@KpAnP+9<8G*eczsi)}zM!1$S|3X=)e3?duF@)jWh?9X277 zXjo;SG`VDx<0kT+dUZm`q5+<~&fjQwEVzH(I#>la^DbA-=FJ~|rRb`CQ|EpVpQ?QR zHw6{di}|tlfi=8}iZQT4E?qirF{AyJ{*;lzm4@{+X5#B}RvWW7;5IAtE4XvYpSg}>m? zfHP*nI1|r>UfsKuJ`x^u`=!<;frxwn@{|z)AZ&uQgU!a3RP)U~@V(Na(_*+PcZ=fE zYpSb)Ktu(Q$}>LX%jahRAaFXsHt_BRRS@viych08aI56YGg9yZXt_#?Umt+)1|;~4 zv=w=;y}GE;3?%udFV;kxeUQ%q#@r78;24mY0fNOR?JKsxU;l*WS9iuQ#{tDww70LA z_uK?DXS0lFm#A0-tV62inV#EvXj1Y}#$3+kesw2QAmn1ON|b%fMTz1^`K;Me#Re8U z3IMF(PBC>Rn;;uU1@OeC_9HP%>ibtki#)XNJ>v)xW7z^C_4YB8_g**w1*Kx&*W?pv zft+EF{V>2HQfY&;^-+oNV2&8x+nIqz| zRoOYG*5%iHr)lYo7rsv;v@Cm~wPaOaRC+<*ly!>E6<*=_`eayweD037kflF?Nq7+) zpHztS=c>V-I5be^M+OMd!&1fDTt+y&8C?+hfbbCi(ws|&P8_toftDjif(Ira0714D z)C59Lu(LULdHY{3;uZcn)2d8jWbCuS9i|gK6aRTEOEWn{wZt!8N4B?2Jg<-A4I+2w zeo3}0%U$IIq@S45;+vXStrz-zZdV-r-}{FiPDCD-kXD> zd%K--fMcI)yjSh6S6iG`y>|Y;&6(?Ck(b7?fa9c6;OJ!O@pWe}e~cY=jfwfTg?aAB zN!Lff40iGHr=0_1w^(2XNZ*kiu=nmLm^h;zvO4Mvx}hwNdF&(Jaa<2kEZ5uhJ1L)E zB%+knU?-Bp0W!wv1sJdHMi&FZW4*C}PpbZ@5_VGwm0M{&W`8LRWGXV>%#EDRevQU2 zRsIs43U=Q^T#1O>CU`>R6qy}P9c3Gx)M+IVX{n*pjQI5~rdV0=)3Cuu*u;x){i;3- z77W4l&vrt9p)7qDnwQuK-je#}!hfn`zgE3y2-)2v2MVclPR#C2Z$TW?MEz1u($rn} z22SI~N(^*wbH{zz@CHvbu4qj(R`7`X_{m7k$Y#b{SL-3@tW-==MZk&iRonKvPYzcJ z-dLyX!N!cs?S`vliGC>dOR^$3HsRRzC9l?MjI1`b6d3Qof{p*zLuGW#xr#^k-jbyeBTx~HbGtX z$%Fh{ex43{a(5ef-LGfvrWxUiXVxiAS{#ypl!i{ue_^Fwiz*6PkxL#pSL&Ul zEuL87o6>=JN9C3lnQ2fK#6)WTa)M_!VyY`Ft#rP#7pun%I{8s>h|byD+nhh=2a=?S zbkT-YwLH$J>)_1bfg9^O59M|ExSt%qQo%X@KCw|+ukW987%!F<0+%5^pll-2eJm1;p@noyOI9|p5-T-$X z{TY%sZU&(Zbgpk#pWod%57i(`pYkA&6PskbE0VTmAn94N^9GwU1CRBqn!ddBagM5v zo{sGrZj-})rcma*U%S7Q!*^Rnq(7AD1*!|v-*os*L4EEw~*k!Zj~XE)}en2UWv>cQ?L4s~@rbSK_3PJJ-v$=ni2EmSiwA$r2( zDw@i5DVK8_P#^bl8wrHMy?F2MYhH~hse|>1w=Z4|4^W+w2i*ci;U5s9IfQ9!(yVvj zGD;)+43@O^r{h;0;>tm1t>Q_kKlxkVH+hwl#k~)OsTO-Dv!~f+jss2${^PyxbHS(q z!Vl=&3yT9VYVG^EXclQlWh0_ut1<95vWn)OYz@_Fw5}|m_DYjL?+{)@xc?uyp z59IQ0_z019|Ljfxvdbkv<^=5giy-2R_*U|j*wFNO|B}Wd&%J&Z@tS9poV+EFm$rG( z?+<2r@=&#GMJ6dc01`V;vOd@R;G{2R*aYjNB1Z%zf5gT5C?f3I&V&f0IKC2$-k{Z} zJ;7*t^AMD`9f&=u>ZtqXACBmZ^eGwQCQQo#Nu|(`a@WS$scJh5`s#5H0_&|!t=R&C z!EJZq8_Q-tf8_18s=9<+61`B;f@uCRS^@8fQ1}z`+~0z%ioJ)YBR%MT>z4R<)3FBjYH<${ImQWn*}JWtcDtb@u#m`ls?@3&OqRxXEQlVO zu3)xE@od|{8U|_+qz0CAQ|ZY(o;7he;D&bC`PApaWlh$=Kzj4c zANB>ZiV;8_*s~+uve+fE6pP+^`WOPEWE(maCEg51;Ur zcFnUk_P4;1LcBw?|47=BHfyk^SEAeY;rK(?&BiX~NlgCO)efh7s~XzBy9@lb{I!&% z|c|(_J2@_916yp z&$BP^|M_z1x#oYJDmtvO`2gut888FLYrO{)%%3+^Dc{r#y!()$K=t9u?JI3p3^tbwSRIX5Zwi2$16JWU1phdmjSiW_42dpz$d`}0-j}MoAlux>d6SX7$yO@H2;ll zT{p1+G9bGn^kSGG+qDqb!yjMv*1{yePo(8r0Mw%^7RDhVFXE-s1OTPd>(whIdDpNm zi*aE5;sORT{UiCrm%bUFe=P)jRbX{#`tjIb+ zm0vjWdr>mdSge6`ELtV`AbFDDR`zRh1&TN>S%z?)^<8(joK*+r7S+$+wi7AQ+3p`J z120s<<0tvIJn&7&ZHsZP#~^3pKp_o7JRg?v)S=!MXYBIixTeFT9J&=seLkv6Jl8q* ziXkG|6Ty28xkJ9-ELnyTSR8;6*Ejm*ur~O#W!tC#TwyGGJu3FD@%_LY^UWj1eYmFW zyoYzidG86_;x(5z29glBu0gkdRMez_%HDerr`PY2`rEMxw~KS!DRf+IXsC}VGn{D| zA@KS|u}xG}@y6{L0#_#C!qix;6VOW%%?v4R_U&j&Md&tD%PG!vs5EGbon1NP`m=2& zHy4+^JZ^VJs6p>hdTuAmZ*d3WY?McsoUV0}8N0N>$)i}ch-NNaKe+jq!m6@!PKEyX zjd&;Cwl1Ypyg8>k#<|GokTZ%4nwazrA!!;1$Thn)?GdHa1@pWIkBMK{7H3__xnC?2 z{7%5A@1%K06i*fUa*gH}+&yPWe5m4wR=Khy@0VUeETiPhUCfKFvTpJJO^y)z#Jswmdd>P50IJvbRSifb6U%>oq!*X?Sb=3q_M_*?hxVjS*#}tV6^r zDFna38m`E?Y2fF!th!y%OaFWVB6Rrp$OdS6KNQ;ME3G9_zXR9CN8aN=ppJ?y9Z|Rc zQmkAR+Bfy{Dp-#%d0K9&`V-;$k^*;}BNqs|0LG_ zgVl#VHv7*4dA(EBST5k5MR3Jw{!x7rOT ztdRk&E9%={NWE_d<|%cPQSIza4?dX514&(AZSlz^ zhF{!Q0jgT%Z?p1xb+22+=E5d^2?HjrR?$^9k!y*~QB;I$NwK~c#)_6Z0S9m~-ugtl z09YIjq3uX+ky!N)#T%!^Vvlb*LG~IihHM?c)0W*#(K6i`5V|b?izKY%wSN-?ebkt> zPce?D-fp~pwXmUosq7#Od@!La9v>R!B*GKEmXpB+e)njjru?mog^S-fWFn^f1*=F- zm80jqH|LexpaEI<=_<6-IIv_C_@zQOH0A&t@#H_KVE%3OGV)6MUyA5wWRC!}23hs| z0H3fa?$5MmjfmG{jXMdzcFnBHMMF-eb1WOA^pGM{BbATxG41JG27k&cJszD=bG>-n zd73}z8!YFVV$GyFj5^&WF&{f(8%m#mK7JO40v25h1HrdVUnj%6Bgo9UTXyMb0|bM* zMVrn!sh=T!7ucKk*Ke0o2ebx};hTQY7+*OcR0y_!!Y~Eo=aZ_C;`2+znKfiNv*pi0 zqzA=XtedMV@2r4M2RCkbp{v(l3P(6N`&8W;-5H>vup_a>&+u)py=mg5xqeOK~&vD`~Gj-|O_+oHS%;dwB2#G}eEf2pwX?8@0Sv(gD^ z%q_Z-H!BZU9_mV-?zqG99GJ?g1)90(FIR%Ai*&TqTp@-No{mj%Z!0YipvzhJ@Uw4O ztp8HHNir&!M(2l@b%J)3*9cz6;#w23EWYejXb)cWvds+QPPmLEU~%p+0wi1rHkLH$ zI0X)_6;qowplK3qLsWzQRPuaVB1jv%pKk%(J*g?gh7=zMl14?~`&47I`m1&c{#F$@ zsbq4Z+b4PyP4b)OqrhNh`k#ms{?681jek24kYHa)dt&j=leBTuAM2?e^M&ZS)Y@6+ zXQwKB!Pqy`iMK%b5!|LH&wmC%-vT~uAe&JjV9KDDsZboy+*DQgK9=xThR zPpf9~m*O%i9;Zv}+v}Lzz$4e;-w-@OqO08#BYU&kkd;)+lLFK3|Ae4@xH)wgA{tQT zl66V-)yZkI4T`;{_3p3}7^sVzXUlDf@8oZsY|19f}zP;L?>vsW)TNv2# z@Va>I+WFF0^^4zL%qwLmae03sfzKq1gSrpyQaJ@jbuVh0*bE3-)9W(698eiK!AZ*o zl1A{^UyAN`6_aIj5+|4>oGw`|Cv2K<)(LKhAe$d|$K~;@R1t3y`DMDxs}9mFp|oC_ zrU4+5+5=uDag(a|F{F(P;eeI~>|NN3n456cdJnL1_m|(k|;^x#6Q2v%czVgoE zpjzChm8XH7X9|G=$!{?ZV|<|#cCKdgow^OWtyP(00qJsL{=(viy^96xJI*fP9oL7D ziLHqRmTc4)%|3UlK0oE7cXtBdM>ux#QCTm|w+r3HImjxE592|BPLG|$oO{1sgU^UB zYOmtdZQ!KBxuOR?qh>Rk>boUX&CxomWFmc+>w#nMCoY0CbhZ~|=%}dN&-}umrAYNn=k{0CjDLVJz{DMqcbZS} zO)w~yn(W^&#vm07j6<4pHK5zS#mzbQZxiA!!#KioC$w*gTB6sMRn6!eP<-QC-+AD? z*|GP3@h}cRXr5ov*3toZoZ1uz|7OICsxPYPv@bCLo9S>JDu795@|ue7-xw+Ije_@A zgffN6o;KB26+vz-22CKxqkQ{cy*+O>5E4@0Q&PxR&W=&N_?04#a9bWg25{?W-*8Yc zhCNZe@nI|I+OL08;f_P(&AbewzI*xUCCdLE0rED|nN;=~@;_pVT(7+QH$`?nIs(S%v=3HEF;TAE zmVTyTtQ;J_fC)3S-TE2~SRIxA>n8aGH1l=3KL>_EboW!ssxBVE;%hv2kcYq{4!#+@ zJr=_NKXZ>BdnZn8=Dg|^t4miHk8te2uj+mZl=by){Q^Ec(!TIz8kw2#Illi$fHuA_ zgYDk2CP*1dtBGffrAX&i$HM+`-$O0XwCHX zn=1~@M4bO1XzcyO`7}J))ljXfJ_hd#oHnB;v6@@S=S8VCUto6jzEiu|a+GE@c0qce zErUDI7=#j%zqi*&Zeg@{Y-Od>5?N>#bm4NwF%`Hd7^9-y%tkI20;P1$FPBfmEUuJf ziJBPp+@Gvk;8~Wtvc=?To@2N-t@=0`-*KA1lxB@4^Vxbmc1|07oY*-lH`mlQ*(zWL zt+iNWz8|RbdaGgE)&J#=BceW7Qg+(KeCpebs_zeXtlw+MB3aGi=WbP99%4NMO=&utjdSZh6EX^+ z1C69tPvYg_CS3_D2fl;UDFK}cV~7jzr`{ixIeF#-THl&Xo5k^a`Gug@SmTMmI}H#S zhKnw-qQAe;-52nOT<~ElhUJdg5O6xn>?T5}8DB#uyM)Wo_#YEC&M=pDca0WjyUOG) zSGTEo$7vZa>e>EeKfVxt`is5Z(;U`cH~Xa1)XH+#^hKq@5jo;+KtJ^hk=9Xe3W|&G z-6_B?Hke}X#(-qe?9#_^4x*hVZOk@q4AO^?ZPycszJ;)Z)6I*DJ{MIk=0qOu=80|` z)sYR@bQ;H#E03SP9!5EhZrAc1Vn$8N=iiQ~wKpwfwWfY*c??}hn^`Vq*B=O&SYGC* zXPU0Zg6+66?_R^YZV7D()Z4V$**iCf>{g7Hl9rn`2p4&yS?f2vIZ3QckDqiW31^=; z>{M2`7)o5R)W>h~Ib5i|y;x2vl%u73byx*6r-}Oy@=5~pj>Y))0k46 zgEt+G^n8OU(ju)bHRYJz6HQL3ch+Y_#5genh7;`1M8K*JQN)p$mIG`RsFr%#jtd|( zHpRtkoM2F{$7sFqWj9Cl9koVc%<&z7&%=^PLwaEng;6D1&ra(b3?9P zaKZGycvP)cQ}o*Ln6F_$*0bBnFwe0C^76#K_9BjCzEHlj7T0qr3JLx$_T!8E;>}k> z_hAJIhaD9VQ@=h(#GHoBi7m<-%)Ag#klU^f&(Ya31?LW8WDn09_ZR!Ok+_}n`?~6dP<^B3XcN63 zTp7Tu66c2s5D&mswKb#O8Ml`${}9>cbuEiW`NNt+o&|r z)Pp{vcOmQ>8c5rh+KZWM>QxkE97f;zOF@5qNFUzmkuZffKFd~L6-6d3%t%r1TKYc> zzjFSgA5xH~uJS?35sfmRMm_48Xp6x*YG{lf8S@p_{xZW#>^^>y01|67_TG+qH~v(Xv@q#r^I)~W`bws>_&#-b^StM_ctY2d*tSquWHj2<7y}WC z%q{0uuw&#@;2v||gYz8cB&!9${cE>H(m!Fp?u`4&ZhN*a5WOVdZWX-n{N#9+cW-cz zO9K?swxDM7tum=&KcplCKt7D6f7fecbLaVCDhaeXYZ|euH-;9)#%Dze*lhAt5Nk*3 z^#EOZX9>c5!Q9!G;-?cLr0&mXPk90(@j7iFnA3hN=76=N)61#aQyTLG`RJSEgMfr0IZBgD8kSii={!;osB5dhDB230S zJ{k~Vj7~rna8Fi|`Lo??YuS+PKc+_aqI{+loUyDwqE-@o%KhK&*;tTXL~OY}!5I?^ zbni|24wPL0OzuaJg|^*bynPbUdx^o=lsrRyN$JJd+z(vnC=(;Q_zLpoV6;cu<%`Zu zuiR(G%Hd(B2tV=>5NljvFb86dE!)YkX1Iwa)%R#DMNe4O>b`?{B%F!DG+ z8>PN<&vSS8aO`sB*8zjC_>;y#k8<6Et{f@MO!*I#P1Ax0nd!SAEJ-EiC#!u&NJ6Xz zhnNLy3L7iZ*9uZ-!3SXyKo4#@|gK>Gtli^Ct&^Eluz64XBna#RqrNlT|cfiW?9Lyr$e*=IwZoG}a-RKmk8U|XJQ?bD#1pvXQKnV` zEr6>{Ms*<8=ZY-Eou}^c7W04*Lr#D@L3}-L5J6lPQTIc9sHPHl==uW2l%yS^xo z$ruszKng*aIY-c84Pg~xvcB1ijqYG&xo5MSMP*i=n)R6$1jum%Ba}wlLnWvpz_CP* zCm{8HF_{Q2E{6x;PbKKXEAX248ARW5gIPIM9A1MaB@ss+u@<%N6>!y3g#wM{)uftI z+r08Cgeq3`I`>s6pLGtt9H2whRPt|s!*@y_rq;SnNer}?jKI;veFbB$5NnYcK&#NF zcV(|MmNymtXNUq*Yt1f`(omBkzaRwm?sjSLijQB<6BW=y2Pf*>#RAkTW-WGc|IB-xscyU{@!g= z8-=iW#cI%tE}Ix(vzi_v;n(Zjc|E41&z>_;L%_VbC@7vk4o?oiRuI9eV}=hg7g;ET z%HQKpkTa{*fXb8EW+JZ5Ln-zI5g*R)U^aQsu6ECfm-mvG!)u}zuW5|jZO@lYSWGy6 zEwpQj^p2B(iJWZD8ii0Ynh$Co{NZ!TbN7r4f%y9c7mtmNKhHS5{9{*V5Lw$6*X&}N(g5l8p-BzpZz=Gx zJ1SmOJrFsgO*!0oj1nq%kvOsQ!wCABsin{*?R`mp4G%0Nz#yYFw_0x~6ZGA*MAJuh znVGXFy|v@-`*h+I_Ic$viOIKwOwwo@;n1eq9YNpi1|1&WlTpOF+&}nI9i+-9^K5UV zZ()A!F6Zn{Ch>(!Y+;i0zJX1&H2fHzy`hh!)|(`Qo+!+gy1iU9{9BoHtEOVw&cGaR zP)c7gJ3!K8-rIL>&;*y#56gD;-C)wwJ2#GBZYZGj^?jcE+fN_(Ea$A)I3kTL#lp~= zoZS`<^PLk&|c9osJ1C|T;H&lBPr z#xx_Z?kyI=?=HHa*v>A=ltM&ov0PXtixT?o@G*l)S-Efh)IYTh<@vaR+(lI^zJv&E zI+hrs$v#n76T)1hqwmJCh0ghP#bdT`t2UguFpK#aP9x_GeTTqDs8 z%WRFGqxIorM&3QSNcr*wr>8E4Q#yqW9|0Xp74H0yefu;Q$*;p7Xw?kJ(rLQ!RTYe2WR#SKohal_rlFUs2`p_J9KA6->!Cc|gjLo-j z+71s(K8;~Iw4g(5eIFX@_kRBrk^USt>6Z&u=N^@EC#;i<1!GIkfV8CPNT_PDY2|OI zxi-5qdrq>?Z)D6|ByX`JEZjNwH7kDw}gC=d^1(LVpZ3C6Z?S`>uI&& z@@|Eu)5DHsPP+MPc`rK=b#``ch$iijl^ac4tdXnN(2C{HDy=bicIJe~Bi-$R+{mdK zl0A>;*7vlc11yI6h7jpqpWy4B(jlE);o^DKLH;8*b5b@slx1?44&K)CDaHOFNuOr} zzMp}N*&Vwmq@7#2HCAh8bHBR7$>Sb*_;;pH@uL!2i?dTFO@IB#*HNWHtGv5bleLzW z9tc3&`V@n>7mc-3E|%K-(uS|5>uYt>n7XAMZrqS!^E?B zgD_b{!qUpI+S!9AuO7JNOvM=!z~e65-Tee!OgoS}RoT8KweK1}FzMD`up{L=d)|;n zBH?x9Y4pYOWV2-a?|jRN^{m!eQ0E`a!h;7DwYJAdp<@7*e#yEpsNXWV_<)a9mET8p zC&x%RofP)&H;(Q;2sq|06WnG$Ighf{V(xC+*bi8@D7U{wbTo0A5U?z>uy%`H*lgRl zZe50HD@8tOqH2N#XWP`8@w=(>@a>{9?ht=w=|tukoKXVNZ0e9cKf3ro4LSNk0^7v; zr)>VumQW|>Hp+MKn_Y6~pg{x=1Cg&ujP#%M8xycVJ2@xgfe_upQ?BeCsmqttsj(x! z{Xf+hmB6NJE{sP?%vt;XRy`D5U=FwjHYd*@QWC=v0HN>;vOYXLoATm|Ylb>U!&~^3 zX*37q8gAWI)MCwQ_zA&Rm4UEm2xCcFle=7!k$SIN%zmTT?U*{@k>5KQQO&dN+_1m% z2AV5TA6yx|>khU(jxu?zoz`5BUphd24taa#RS)ZD&Ll*)&&muAFSo)cDvPi%Qg4IE z$g`x0Gb{g3zS-97zu@7%D9K9=yv~u$V=NG6?qSpa!iIR}1 zh$03sng0=G@_uE*k0g+ZZ?&Nr1sW>nsfM%yIdv)?ElqhOx|szg%9 z9F`Zs;y2hQ59L*kC5yD~*}2ikb=!>LnbqJ_fUfaOOY@ly3`&*qAO_@Oo53k_gj2W{ z4ye{=hoVdc_$i+Qn64+}D15{>n68;BF0mE#Q5r4K=egV?t@On{^C`B!%# zGrKLj+;6VYk%|323K=Z#OBz~m*IIb?__~*yv0_3{b7cUbhlO>DJE{*IA~9FW+aIqUJj z7)`27*sXktS(Yxy3W|WfQK0&JoaBI_64%4Xzs(Ruqn$nsV+!x)#lf4?b?Gh`NLthu za2{p9ahwNM=*Hfb@)r#5OR0X(R@xlIFg+fxFXZ&kO)}nTxL|X(@=@?fT+r~@3WME` zl>;FZ?#vzqz$+JS)E9SMFaE?p5w`8nWo@!1z`WYbkqk7{z_^D$sYoy<}PZ z$>wz0Wnt6SpJ*ckveae~Re?M=e}Yy_W=WND#&^Tofxc_h1Jr+29h^wz*-WhTd>IJ& z_w&{LQ3-GB_%)Uqs%9nOuLknxz365b4f&7}PFtJG^VU)cU&NejVql`rf-Hg#fBm)^ zrIENtqH=(TG&`FWAZUx%*b&@Oz9{_*d#QbHm1OC9HdHj}v+(tg(7jtCt(3EjH=ohU zOZ~F!XEAMjA{zO{jZxzBvI{d(*!tTnwG(d%x4ot5K6^vnnSZh{UsLT!#?Y43?P-wc z;v!~gMrvSb%`ms?TgHKF*RS`7cigqJuUkETR8w9(4c;A3LcgOAgZ^@A&G+9yQiOc7 z%5vBw3lz27@tP%DFZR$FX(xAU6gkk*!`55k0^T~J*2%ahJ`XM% z4{8bKBmetp&cBKNX*}rKsT}%q;+;6L&oHf#%IvH7Hh4z9mv?#jk(gElqt)c{AP%~0 z=|V7a*ZT5Y(yOI4et^E*dE&uNE9O|wc&3`!en$B`4iezPaBKCuAB1GtSvo)jMLk_U zc?|V%6=dDgZuDdHv`+A;I|mu5E9VWF^{5)Semxu(%`D|Xlcb4?>`vq&5L((gt7c(h z-;Zle`?~MFx>;E#PP6j6siiQjWbEQ_jcMZ`bAC%>fm|fzhrCtQyHXc=(&PtCzQUKm zs;T6?f{<=HYneKlKp5+gkN#|_hy=aQ33MI%MhwP2Vb@BK6tQ+8@p;>5>`3v%PT6t_ z$K_zyNg^#n$Z^?Q(Bhiq$NH`F+-4AU#MJN8=-RX+yPsPD%iEAS)|+Fh^^9mWkRDJV zf%h7Vm$punch-;VKE7x6NF0e5|5N01PGOsGCtt5$fUwt2OVgWEcR?aepVU-6_59Zx z4Ns+Pjh0&%ck_-z=2rIJRJ-Gb`T1nMXkf-4MCw`NTtX%cR_uE}SpV`rlt4OsC{!w) z+A+wQ@yv$KJ0(9jh&QR#vN8P zzkn-5B=v8Aeem&em9mWlY9i<9GHl zW0v@N?(_Bn?*&XVS2UkoSMHw&EcN?+tLh7JDpAZKlRHYy?)2%(dr8??MM)!pM z$%^E?l-`viqz6$-?~eaD_9>y0s9uhmGZ#~k{M;P0LzISi7vVyjdUt~*OD{QA*6cROHR(7RtF{_!>+-X4yHvO?DpAYb4zU=*oTXF$13?m1?J=&l`qJPXDF`&*8 z)8l^BOdPd&p~`i!9S{>LA%^an@2m z>{Us&m#DzVM46N?O1)jZ*TY7}OT&r3Z^Tf8JwMZHtCp?VPKVFSDA6mh_ zoRQ}IGl^e5g)c5JBWY4*!}9!5qrQX0SbpU3%i+oSQGGK5zO7lt-Y1eV!73SA^V~bs z6T{Yag(ybd%_nYmUs>-~t=}v>X`HPkb-9xQzfrC%eZjOi)Is{k#FMj(^yX@+u2%v` zI@!3iPt)>!&h(^YZ62(fowe4a5%W%iCS#cOF+&LMP;&6}4*q4&3NEe@hU-QLkTZWq zt%Egi#4pwvK)oqdcM?A7EZv2!m0Er|JU)Ds`0B_!&3OE_4Iiv0PI|dno&d4$bkLXH zo4PO~89^;ZVBMYNUQY>Q52I;22w0B;!umdUCoZ8B*o9j`4W}ch@oQ(jbjo zvvD53T~DJno*DJ`tfB)&K+OE|lcPnMH7cbLbyKO~PAaUl|AHmeGs6Z+YD7b&rQ&KXBJb?`XOF*_ep8xh%CI*EDbM zfb7}8E!^=fq(DL8#Hx4=dLAKz_j>K6@a>_4S;+5zVp}};0F5)SesU+Bc)QQq<^E0{ zS;fj6!-y|eUfLU-&A3b2gckNFl)WR-K;eHj!H1u9&&;3c{EC8H(Du3rBE^#)0taGr zP&W*iSZZ_`KgqWW>Q@;gw0$aSW+f;r3+*X2h) za%SGvE0f%xQDTYZ8#~vSSlSh@@tsT_HJ!Ye_4)%3Vg6;jSFC!L(E!8PzUB&%BoI(J z*T!@ibzy3kTJS6iKlrHF-7t`sLn(9*xJgxMKtIxTtJ%(Bcv~orw*e)!lqA?*+B5T9 zVscvg&SaBsNCV>uGNF%Y{LA-w38}@1wA0VuE^8K0>oy<&+yVO!a>7`1=#3LRM_ojP zZil#5GJem*a3xmN{n9ttT0Z9gE9gk-#>}3+l35VR1o0G%UI8&@%PT2Pds=!S@6=%P zHa`0TA7_`+%b5l8>kV9L>i+mnZJ}Kc7;CnrLtHAJO!@1HM`rHNPonQnnAKth*%E0R z`h!){pBwN+_&YF_9Bz@KRNH?Petx?9aq&pxbge{sXGbRMJ@Xf`r7gOSL>IoY4fl~* z8JIPnry$*+z4$GYA*_Q4XWmKqowQ3I1o$$_v^O()qXSn$x|XSoevpM1zH zfhCx68;u7 z$ZTzeg%ZEq4iW#UNq2Igw(Ddgd=O=4IH8?5^0|RmU}AkwTGDDQdq~PPSryrIxq^j1 z34`S`^EywHJ2w9o<9BfHeEnu|pRVKZ4Lu3pam(>Q=AE8L?54iY_MuFbmlwV*y)nchH;$;06isF?-nGyPnO zf3Li*7>+h;$k_HyU6nLMtu;%0@pZ3BoC!T<4Eg`wFE~2>-~0Us`M+-%-qbmjUe<4y zG3C66nVfn34n|!qn!Od)I$~^kBW=do_#Y%X^>iBcsCUpSSaL~Kto^kP1JB@dKieZm zE1~@@k&V_j_G@y0gwIVyfYD0#g4VqdKWoe+;9ee<(L}3^GM~F-0tTMUP1hrUiru>77%l zYxtkbEH8Y+x~9Wbv$4aIDC^nx#tI!xv%aOs9QeJ0rY(;s{5Xr5Nd?;2kkc2X8qethj`L;m)L9-Uwd`cfIO^k>6*{tb7nH1ds`ct}-uRq1JqEO%Q; z)ywTfpGKWSyZy|Tv^_n?<=C6i3=W0Ls zgcr(;%(Ued3JmL4+x=|tv+RAT1f0)Z30I=?WVVO|e9o&|vo3cY;?t)%P#zT*8;8ic z>Nepf26ezNCh@rjp*+LkMLYz9P6Q=V()sb9|@P&f-O|#mSAb z5HH5z%X3mgNEC^jvp9(1;VR*5VW1G|`}G{Q4?s5*e@dyuO{{X&O9hJK@2lj*h2?y> zZk@xUs0Dhj=u^3Am>4GG>aEp#|H@*IW z=vf|%KQ~2;Hic};)!2oCn_@kXkQ!*uLFv>-5Yo;K{D2_Z;(vl6s#~9k@gD-epw)VI zY!(on|0f^<9>Aa=(y|T%C7;|F6p?;RbsuxEqr?hrbAx`g+wCh2DSgogA3^o->cKd`WE4ysu!ccrC6Q zif1MY<|_9{6DYLJD)m9Vqz^a){(SAIhm|UD$Gd>=hAbjW9-Dy2Gr|m1>Kk?+ADMmceUU%iZ2Cj=#qJPpkxrmh zU4S9VPVpjive$dtwj?7-(s{V|OUGuZj8Mw#Pn_Bi)zDnQnA!=eR~dF9l~zqa%#QbiVXjO=M>@h2-W*Hf#-lBD}hPE!c=*g&USMA+)tJ>7FV_OjSd&Kzr z*G3o!1tUnHRwpC&XK*uCq#2CesoHz8k)a=Ftr2FF8~(ylCM+n{_~6fROSB79`zz^! zPq&u|bySPqrPH%lZcKO@hvoG*Fdlrd1tX{r2 zk0ci(RQE{N8u^M7Uutr3w7IrX517YbeB$v33N^wPg*gYZR*TqW24&NKRRzlm`Iz3_ zjUowSci7ecOMBCZiJ{3st@SXa+YntiS7oe~L~lRjNMiA)Qo9zeh1StIaL(xvcTa7q zKx6g385i=+TFwthaty0sRr#hlqSjaH<1~iVwh)LS5TyHxKL|ILdsY zc*?J2PNN<6rjUEF!oeq9=-hVFIbEv6jW6_!$cZo4UMH_ADLj*Kli$Mp+~McQ;v=sw z#ROalO7kyZ*^$jzven}8RS9pHOi?djBz&)XCyZ+psrQabx})S0h}fa(+H)f;D$ql}``)^OLjWJihX z5ewYEk>|B)tdY$FDpQ?7UwIcVAo&cNb^3nSir!G?Bf9 z?*KEHpH6ptWa6YkAU0LK$w(G!rY7oUOrXxmpiU}2#$c-nn)j66D2dOGM2Y^EUVKHC zFU01%kt8_Qr!ds?TZm(Zu`zSRXCFbnhk`C%Ut$WB`MqM89yesFDxYJi`y-x5(EiQ0 znTk8S+iEkr_onsO#=2pE4Kz+U>rw%qwKmwfK~Fj&kE2X25GX~%x;62gwNyBJu3Bru z5hmfqy0>{j2P$9eNdY7WjN<)(0F)?*J3(GWLWJP-k#M!*^bcurr)xF(?|r^!ts)SWg>3RP1ESJ2CjZojUrbh{C$@7jKED* zByZ;CdDzc+arTni-W}HpT6f&j0J~ce!B~GcCi83L=h2RoJk&C zQ69+K`T#T<_#K*0*OS?tnG-be^~QiZjOTi*6`Ql}H7M`ZMsu~47K^Ua@)FYJ<&_2C z%il@x|N8w(sjLcu3SL~}4dRQ{qJ~l>Xchsvhaw_K6?!X3ol+aBmPG`Wrv@F8IdSXY z$*L+MyllF8L|q_6D~m5xB|(c?Gl%nOXwK8XAQkX&T%5Bmg;WAW4{-B{9NuCg-fSgK z%CB-`@|+-yAhb-4Eh3JRRF_iwLju?=Rc}DSnxuwO)MW8yD{Aq6z~}f6#z5kd0iVyo z0ah+2i*{)K4e&xYvlT&d?pH-bxE$ieS2Y#tYm`b*Ia2Ls=eiEkxkh%r&aYaO^N@UE z7Z1i{DW9ATeN42yp7ctlzRwFR)H1q^2#0-kWoWLj{wJ1KD!fHzS9s&fAqOSC%E zn_LehL)-(f#SKIlP{?J0rvL#75J7{le$&-{B2FPp;SA`0xvsZ8psC=>8dt;3bC+?5 zLg7Y?^|PAwKn8{?ykG+EtMbbr21ekq8*fmj0?h;RibOGJvd|y~^pQN7&1w!)w-mr8 zFnv&J8LT>{sh&a_OF=26Qgnwk`bhrXtpG%*kFh^@P;7tv*mdd36DXkhS-{}reXQa` zH5uNZyBtTlV6WA}-}VNYn-xS>*fxTY*^NRjg>N|y(!E~9YN2sV^>hl9!-qc4W2PpI z=R$-lUae2pkKjC0$lF`bj%OTX^gcS_&QpNv7k!e^;H0Ej@i!+-l0CQ&>2zs4$>VrF zbzMaP4w?xm4YdtEH5~E;z0e9s%}TC3JK87y5c|@j?IDDgmsm->4NT|Rq{gmmIj+BY zs+7c$r;~wReL)r2tx2g?#Bqg6c@e~FoSZDQF;KiV0iXuDcGad`#KQ&j@Y1#*^ zj0m}_?G)HW<>ElJ2N4etAhB43##c5lk-BeowQ%K#L-X-K5i76)aEEK&2I0>vYN}te z#Gl2?_yku^4mZ&IqZED&X#D6my-=C2A+aE{tQPw`&ey)&ZfbP8Wok$*DYm+;%s_B} zyi4>{322gn@UN$sWIaV(ZL<_ID(~*ffl5Ars=w(1C#6JYXy}1?O40uaii8aKN#mw?yc5HT65a`^91(6)T=jMx81A8B8Ka|$w=~}Lb zQn1Sdk$wY(!XI3<;w`XzLwOj`hl+&btzkh-=+o02u!Cyof_3V(`aw92E!4$Kp4<$6 zJtv;E(z__nBpz&tQfi_1=qA*%f{7XtgeD1^H`2Hkbt#T1{h;{lavm|dcrhVfpXF8R zXz}EWDPd351K0q}N*YBF-e5f$(tO(2*@YmM7mg!UW64vERpjo9qgs>FR8pYsnA)A3 zZ0GFn@5L~-G+(9F)DIy|4YXCIA%rbsyjzw;4i3)LbxytR15?|R>X8M?mOmt^Ed#i! zZ1~FfmjnVRah$Pg*vG%UJ~U4gh!5M8tp#1E^Z3vm<~c96`&!#(ZD3W`TU4GzwSRYy zXfS|A2)~xrUiKl+}2BoP|Wb<^WGZKxz5xoj0gaX?6kv61!!1Z z%z6l_x7+8Nqe_x&_6w@yrRi5$d9;#k6qGz20M6;+WyE7%j@ufIqq-N|Hu~JsPfFaU zrexVUD!x^0|GjbRVV`RGPyG3VR=`XAf1YWwY32L5>bAE#=)I!~1dI}g= z(ag&IQfD|G6jpdFtoJFlKDaUXlW#vkp=M1_Lm8Q6pk=$1pv82g$Zy zT)V^G@ls2_D-F!4@ehoi+-ug3# zqenxHTzN~EOd3fC5>m?%wMIpg=M}MCrbqFX_EWn2ssA9X0qpZZvW~IzL{Z|#hB$#N z(tVMfE$|a5SfWB6^v*jbXxsg|+~PKn@P4s&h#r_MSANr8tM0>BZ0Vdj<9y97;pYpJ z=CCqyJ2^a>dRNwdmXEu9Lqj$~8xPT}y8B99O6#hv zsCAqgg@rwJM6g6{N~8Fb$A$lqEU z$8oOeu^l>p4Y|q6$tVjSgY-nkA<<D!h|~eTt`Pu z)nAR=xl>V7OK-&ZHtkM_hjI&pPTWr04sbog5JqL;uTZV zDJHd_q{4S?lY|w~Pss9-93PZ?pYEN)Wq$9EmlSm&W|qhXTY1x-*JON=uuTcL9{&+G zF|{CAE`+W)7pp&AtZfR;p5hGah<3OiM@q<+HRPRKsmD*fQS&%;+efR-Y$W(?Tmwt@ z;9=Cb!*r+lMXE*9eG3NDWX#0nhR^#yYrOiu&r{fJGUW9i$4Oo2#rK_VMm2;|?-mBWU=ZW~(%QDY-VIQT2P-h;7+7hApsPEK;8CG_U~?!{_@@=Am1R?A5Z z8}H+qocv#sZ}R;h>*}=81!t%PYy09C>oENq-(ywAh}B0!&&#vV$Py7}rUfpf3i4A} zO!0#wQtutH2b?+cD*E)d3?u2cHCSzJ%MS;bzcp{0_E)F3HtT;058KYzY2b0_iZXod zkkCPu4!7P6a64>vO|gr3(Nz8G2T7SAaxrNCiN2H(Pj#GwU29pE5hKCqMV(Rn(p+Cg z=Hf_+-;}CG%#0C@t(u)trp(9UFyqs)*yF^JnQ4PJ`c=~nO$jlWPR$vO*fu1!6GRs- zTot#$XoPIw@s~F+WdG*jKkPwLN0TUao{7SWls&VQw-lV*5)khi-{;S79*!O9`@HBp zSoBzGV7wrW>kcAmd&2e~#EQKl?RgUM%XO~$4eN4~4Muq8Cfd0s(wKil9C;a{pOLt) z6nAc(USo%5HapjPc`9SCfR&b7ZI%k|J>4RqC2lw&1u4R z$B0W0>QksoSEQ;NXqbTa#siV{-(3;Feptdo?U%;kSKdOB#UdW=%y6FnskONis1kJB zZb0$k5CHLLLv^n%m^r#i&Y(a-^LoyI!4^s!S1v#mfPsjh6jJecSIHLu{9jeYU!ng{ zN^Qs(C`FcMxpVag3&2L8a|2)d3bunV44|t4Qfn$DC@agD9Dp^tc)*MZa1K5c)L>s_ zo#A~2SIe*X9Aq%e+@Qx;+DO?mX6E%oVcbpUcNg#HN@5noXa3HJy_Wg96xh*pFj?WY zHZtQb>|oS2Z}Uun;5&DO7ELxG6_H8SN8-m3H$z$egE^0Hn-q-#cq5Sof-D|V6BE*L zKSi(vU0ox2@p!X9h}e5iZXV(y$~IjJ0KLIOz6T&5MZ#?*JfX5(Al=^11FVRA`c<@fv*#(5Qbm0^Ln`7C6lUz1X#Z1u{FI1I<9IBuqM1Li~0 z00c{(W6Vg0CZ%{Kb3On_{~%qVw|~gPt~kWo%Q+03yX!fzK{|Vi6m6{K;i2!n_Ow*f zhy)6ucxe%yhU;EM9GFhC72=_5EZt_i5@N?x+SUTBJ~q1H76@(S3@YmvI-GoCPx+=m z*ht;;^&*xR(>ws2y-eEYCDe+!fa38FgK{#BH^*qPNtr)u?&tjjYW&geDAQaE{${1= z>Q59VW*qfD2Qn-iPeaD`NM+#%NU=xDsdf2Cqle{_muZ4wK*_0V(C9t*9Dna^Awz%b ztd)4k{4ZmD_YzK?L0%(`&vr9a)xKJ$dM4Nv%=b3TI2+l8|^|b6+uYYsCS( z(?V}d@0_MH>RjIT+GbC&x0^rt`)L_RWTj4gAnO;Kk8)HS`sk&?0Y9F@nKYSLYZ2;& z8cbM5*podw4OjOJqy=IOMQSKNDCA*^YWdP5DNgms?yim#gI=l0TiWB;+V}Z3`Vfc4 z&fw<9IweH}ANC)O{DT;;P@k%ozKVoTRRuSB>L*BgFdPLGe_!!FgiB>`#a+6SQ*Cbd zfT9EMNp8@hlO8bM;0evxOGYA z-%Q6n5UzNQ4=~b0WuD;;$0e`55)tz|Qy!Sm>>C*Gd|^_A2XTF_b4Yw+c&K?F=*6pH%FWO zS2G7+UC2AcZ1-L#E}Tb{VLELb66`e=y5$Hm%QKQyPvZbjO-%Za4nKZ+lTiW_}%a`k;jGb;K z(J49bSsf7j_O6Pf#u{Jh!55d1)7i3a_iM2ejJ|Yy%jMMi=U!xXK;MG{1CS(<=)JVr zGs*+m%dlSDtyU0sP`ZTEOG0{GhG?u^=1+)44oc_F3sxka8hIsY8&6GlKeEf@7q|yD zOS_?V_I?-(TPdRq6UnN0^eCO*&3L8~PTMulPjU0u_{tP3djt0!i4)iHZVx5ODC*jc zq%-%<#Ib!Bd8dHS>42}aUXh@c2plub9DfqkYDY5k+r|pn_To_eRgdn@e!G8s2tSjg zMC-?I9#NfJjWpR`riD)#lm-O(IICYBAG^Ff4^At}cqA_R+;b9QL;8LJJ>TrFcl0bR z*&12UX;1_5on^)r5Q95L#Wd7se`zRtXSl-YFg+#Th(?QdCkEP;&R zjOuxi0`mVkZW|a7k(S?JKdVo2dQ57Qu_mXtf>Ju@7v$~8oY-m^rqr=frs|v-mR9#q zJw-yH=yj>cDdzS%rzV#${{Sw=U>G?8bDi;gLEKx1uDzSDo>K{4uRi^#LQTzgNTziZ z{4vG+RCgXZvt;%at5CWBBGbZ;%#bgv-6)uO?iAC#t(5B%;Ps_?ps{CV%EEN|oN9dQ z+OU$~H?-<#aO|%Px%Iju=OJ7m4*6yz%%5;xBfE@0!{@AT)!(uo%jV;8H{(3b&BJ+r zcL$xk(RW!Y+Q&}GL8B#i@@Ytkym`F)S(wCraj~@8;+b}%Qt#?vcrU%fUgsSb()xs< zq2F}qfYg(DA2G&h4>6zY3(-y|0ZRi3=IPi+Y5t=w&wi+;*<-X{71Td$ zccX`Ya88G7a6W*%XW@B7L;$UW?jd9C0WQ(pu`^MkF^cr$orlZI_DZo@Z1UZF8X;LB z^KX}hn^g~04DO^Ize*AR)-bw`Pqb%TIKGi|@g)HHhHlfZKUGMbdsN9-~M>X&dw|~F+VX~SI(i$I!zCQHs zQo@EF;ilm$-Q=;gfoWb_XKXdEuNxSte2i+>aK+jX3V$=*dU$uEmgvED)gzf3e1t_V z@505+A<@^DA->8=3qT~{7v``(v`0Zmkk^nz_nRky0QdY@w)fNX!t@3OW)v!nR%2P`oQV6 zYJL^X8^hAUaLJ%v?z?+;Sfi{6ZBpeqvujp~vW=D5&QS6_rxv%~Fd|)%B8bG64H4n> z=6Ehsovhw8k2n@v3vnWl}F2L&72{!|_zQ zAwSgpm9v+2%C@9EvwD@iBlBs>X~n~{HzF9#fhAF=;#?zeMAT@OHe%MDX2W}$iTg0v{XSiX9g z!;N)i>+`^DTaTujNthB*rSerReR;;CdeWK{ELldLoRsl+vb7o4%Ke<&W!Yet86D(^ z4pZUle~_Pjn{znM+b4~6IOd7zKdtf4;f$C9=`oq-4wg8~w(Lq@$i=eKIhGf8oE*Rz zFsIxLlJA74H(S_W_V1jFK6>@NZ3kwSH@~JLGj&_6G+s^l^;6RuP%()HF+6^TTT8#vvR5iDzl?rwZ2s}~e!s29w0PKy+PxbhQs&A1ec=~h zNSW|-c8wj>VGrBwt&0AXyQv9uRZUz@?t&AdK%;P^@m*z``r7jYW`3V<0ocN+@_!KC zD%pdzr0w*N{~(MYV`shag8MW>=O2XbA0*{WL-GA3Zus1MBJ81rQRI|SSA&ySU6Ol6 zGR%b!u@TSW^KpX8@{^q-Qm*8^sw{KAO#IlvOS=O%QCOitoV};s=1*I9A6vBXFOS`g z;*SKRw5a1rXH+}6hfi)j_NK2uTXN&X!$+^xLH*MFTbk(TQf-kdpd^-dFPp(D53*;UqmDX;JVo_3G_)dsAsXSCzm-0LYEouaa#8ygVXoshm2@FhypG z+zN_z4T+OH0tyP=0p>0xmm+$9E*awmUP6N=0;r_VPoSyg=M{@mI1@zGgx*$_)n@CW zMY#|DA4cs#xv)gBQ*pZo+mGxbqg*WNYyCPphRCdJ@?tuF(%z8s_Ip*{e=3>^2MvX_ zV+}}XYH3S1V!Wlt{1$u!q zJJ19(C~<>7P+hWddfm zvugN3^FPReGm0IT3^XSFr?h$4Q}o|*uLI|jW78Fmv%uNhe~{%S5C{{qF#HFM(__J%LrztkmoVoaL`m*rR{;dvFu*7YdUcB+ay9|O z0x%H+5`?Qc0WH~`^Fss;oO+~J%o ze?&B?fb{nx$<5`s?Zn1*Z1eJUfvujpv1(S_mbuLks0 zc8n9OM9*lmegxPE#Vs!VSim;XF6GqFR_Ys18cqiPFrj6bW>@TkJo92|p*}EtF27Ip zqjm%;XeFjRDajgKQ!`o7&sl&aaHHPvdVF2~?hlS4JlFa145L9yPu~bdWJ@Q^aB}+3 zASd#uy4K@irZDDZr!u=n8?fy9LwnNG?c`#tv-qDHT@5p05ZQ5U+$@1toUlYz1S0rq zs&>6n9;yHaZFmwzX8$9Ksfc_NK-3=(9oiKb7l`p#z|f6=m#{I*3`|8#HRM8h?hXfk zGU4W+R{Qkc^FXuf?;;iG8v(baz#ecvasT~pI*;0`z8EYuB(bSi{pl%l01p9>kFz6W^407fHu~_XZsQ!B#k-w z=1BK48wb=-7nbEct%2aUNZS7g>5H~Z@h8S+Ku^@`KeznsS3D!KK(A2LpYAo(3cNp4 zhIO^fmaoqQM`xSCcK>YbcjDN$k8(?zR+-7&J=|4?ew~&>a7VkpmT_$)m@}io-iMv- z8$vc7F4+SD{9QP#jNhIYdBK$SL|Wht&M0l; zh*<`3hb$`5O8C(6j+I<47}1U1oTw)&Q3Ku^94 zXIk>45W~MZwz4UEjVM~A` zvMli_zKYEUX4)qw*K~dhf`r21h5RZ@o_c0qu4aXe=Q(1Dq%F2;a z7oBCFh>EAD7Cq{GOTGdzH+x;ho`_dLSvMCX;>&KV39qhN`ja>K#R(G(<*>E zpxp)8lfL9PQ|-p(&-il30ky(@xfL;c1`RlAW=g|B#B3V?ql@Bv^@+IhLY>oy4*>iJ zp*{Z~r|tn4CbUDV0lUzDkX5iht}O*%1rNLj)p0_imq|D5^5z{=N}AQ9Om~Q!WA#kFy{*ms?F)&wV6qxz1EI-bK*zz zuy!1bz5bZMt!Bc3v#--i)ZiY;_KZcqMC7MOH)&N2HE3U~>wVWG$8S5bhciWFysgD6 z;Z2;Vnpv=RcZbsbo>&~gMA#oKOJPo4$ez!A`v(z)1-z!6@C*0{iKtsH&s%jy9iUxA zX2bOYc1qskhCo(X%F~9{&oCSptsiRMLL7d2yzfo^+&mh5Asx2-T<{;{u3{@6I0g0$ zEYn{h@~cmKkDTWV>BD`3Z<9);5~ zlU*T)nI8hsxz`wgYdpKX0wn$eD4)ZOS>!r%*vyK}Yspv34o(vJ=|UYLa8_5LEnog? zr9NplWQHE;|0XeFH_|#%g$W{;Wi_0UN?UCP=5|evWzsFOVY|?yJhatxXNX>A*mLM= z2Hb0{IWfD+1V!2uTrtIvQQMLDb52;h!;dO%st!|UQ^qeJ=egkJYMymnS&i6JFtokT z^(-nNL?*86Yt3qQzESyfZBK1&X2Q3bR0BQs#Q5`QP8@kO4r_!nZNartV}UACT7`sL^ozt*k-gm!V5W(s{A~&~k;%s*GNsM`cy>{Eq(0JdA4$k`< zBA9dfGIqb&i$A;!JwI=Ef9g$H$^?n~{PLT9-{bmp?&upRpL3`CohPOvq6~HP=`|g# zH`qBR-j`1bAPsh&_=@{P?ZS8t^J&u78U8qJ=6LZjCe#i-m7HAZ%tK~gM)&znEuzdn zu7GF-_8C;*2=2}lYU_10run}*HlV^z1Bn#-OgkKtJBvq|!ZXw0Mvi4ZSXRKfuwAkz zl%Gq<#-Vm|fA!9Hl5kmvceaFQC`>D-9_ zL(^GDMb&<99|bI=Q(8i#MWwr>Q$iR*r5PIO6qN365J7M#iJ74h=@t+M7={kXk#3&% z=KEXkTK?ez&S8LA=iYl?*Y(-g^cSX>Si^=3zU5hmmuX)`!39;RE1;tVXEl2SZt68n4@fu&7|CzOJR+Lfd*IX4fqU^c`>Kdxoyn2x(2!k_I zrPPZP^iYo;<~TN9I{e}ewZqgtO6+QVhIjQsL94-k$m?FQ-?V}9xKbTs8|6ums(S!m zl~Obj_t4&QVNKYVf5k0Dd4En+R<{mMdXgqH%$k788NvA z>+*dzk8|FbSn#2{mAZ(9MYJ9ojKrDoxZaIq;^m%<-eW42O8B$i7+AYjKJitz9H|!n z3zJ+9A0KZjIydEb_RVYm)ElxHH05p6BK8mi-=(rK34G-MZ#p%9V_B(TlSP-+{3u?= zjG?cRb&J$2wctvAqtc-vFDx@v-+a-|NwdW?`^yI>2@R+G6)TTSNro?h>~$uUk#^|e zgROBZhwXy6F`g9d=m_gDOo7}+_E1fYL0B*ogT3!%i(!wubKy~jN4(L18y5l{w)pL& zyVoN?tI6)~+qE}4@vCdPzEDJ>XSDj58>VAI(CFpRdx+O;UwZF-1}_ggY8_U|vyyDI zUt4uuf|;$nZ(V-my1`l&#`L9cOc|fva#(c-L@N9NJoQ4$!2=twrT*i6_r7kk;FjOa zK|Z$^re@h|)>E=(N!scRz2RgL+JlbB6L_VSf9DQzpC8j;5YkA*Rg(?+)r^)4%5<^FvsrQI{#Yp=BlH94~*B zWmxyv(%cM)L0YVs;SZSLD{1B$E=a4oRam$2scyJ8Yv>D&*QAQKjBkmC`Fq>vZguh3 zPWrfC?=gjg>CO7K&ABl7Wzt3dl{9ENuCLmHIO_J>GB(;iHIvRUMXC*`f!urvdYhN- zorUi#&#@;jA@p68Qs>$$Tp3$JyW63KXYqx5XeP;prfmL<>@7Rdz}GE zm8m;RKMKl#t#cpQS@dr#5uiE-CNLH5&BCPU&l37L{7HXExhU~8RYSOnwSn#6e`aCj z0+t9E@X{&6N*};fWq`Mg>$W}^>nng#TwhNC_`Q-Mfsst-rer3i0OdERl%Ia&yrUaj z^bst}V`qC19L17^|3gX%Au?s@H$>ANqQdbLhk`?}cBgyZ-C=7h=55FF@~v^p=QTZ6 z~);s)5-Uhxj5#IPG zs%x%A>Ool}6l__3LoP$*}+$iSH@Y_C< zUqT=mi4KmGX#EX{(@=!|RXeke;Vx}&o}q`)%}cyO0g9Pa%ZIZJv+7Ynby^(tMuf|B z*jFqFJH9V_k8M_6;Kua#k}n`X-*;`tZXmMfscuUPtXxGHA^5RZq7{c z+nnqx4FhDtyP}+@%50;8!>A<;>NnNT{KffJG0l&8b4!yx6;2CDlWUmWxTP6`G!?oT z+qH&DoDgEU2Rj@bMx_*mz&4VuN21Ie5(`9@&w3O|Fp~DmzsxWooXC9opFK(kUmuuC zJ~3;{>f^E+`#yl(;{wj80BugtWpI@O)#Y(GbC_UHmpm(O6tmpQ$Akthz>P%lwu=2)z4edQpAX(VclT}`8W=z$) z_ZvGHk{EkqBay5j2~I3DA1>vjVFQv1hrTSKLkR5Si?`mT3bzIXK2ZxFll&I)JZ>Oh zT+`#JjT$`afquA$7zjhVIatJVh|bA)S31xHT7(WxZnml>GED7UiskGgiJ$=P;qKqg zK$%ZGU{yHbzseDhpqc4W#xYSo;u`+mn?S$P-Ww;(ll%HkVwB~c-n|-tO=(v~Dwp1; zvIH+#<&_TjV2N@mZp($uR7{n-;534c=jt0Djk9Hq&_NgLtSKFv6X6?hV>KAf4ch zasHVIbUs{{DB&9NPb))`#b%3H9v%4_W_{-%@#e1_E`L`-9GoOKXd`y}8_9NRZTT>UrWNE$*7?%-kY;NhKIM&au#WwqM zjIgl5s8V`FEoQyFE^-I@w>6VQPu)SvBqthmqP;^S2_H5P5XTw>6o{3W$kYHEt`6vEL*x(f^7Yae?p72w)TPr zd$s-7;y;{UiT~jkuPz3F>N95K%xHS_Kb%~%gW24@?YP&CXA+dx(jb3k%`yq`VXcqc zr_N+#ytkmpsd(l*&h&bDl?JOeijFL)E^c6)t5rCt8;=lcGQO1D2&n0UI0lT&xgNAf zC74XTpQCfei;pj3;Hcj}v&G(49P=qHpMYv^Wo}{oXvyE`w zoG~PWi3-9SuHy9{PV@F|pz%1vCx?VhZ{e27CkFqLHWxdhE9vK{qCUKpw9~cKxH}%e zeu!Rule^zB5U|%+ws?Fsb}qJKGg8O@EAIO8$uXA6E;zkGnBM6?)WX#&!lF@V=3bsf zLa4k_?{R`wvf|z7^uBcQuynlFn!5ktI6$<1(ex-U#ZZ5M(#c4R0^fu)idOPYUcJCuB%z`4%sFJo+HHR@ z(_sh7Y4hrs*rCg_rwQq@EnJT5F;(;l214L!6o=nlLsD}-?AIv{+o?fG0egV(MApM* zR2oNEt>sptVez(GIwacX?S`$pA(6As_DtN_Zu}yOw8n8-Y7yggr^kHa1yS4qyI_a$ z(l6HATGke<7B1da##*1Xw*UYVS=@7PhUNU`x7` z>9j1+{#;8sRdl#1v;6Y4Snl?Wbe%=pns#N-7iutW>za2y&CIjAE}YYnlN3mmzP1(! z%H(Ogv>-dpl?L1v=L7Wh9bd!$aAa4^lEIJ2aXqoyww3|9SLk{A|NV#+eL)OO@zP#$ zYh$PuzuciiCcA1Rns2oQ$t57EXsYl(U2xoEgX5EQzVL!4`)@JnXsDJ6kW^KDec<7w)(qemPcueMx&}fIEZYR zd>A)NK~iu?{_{!y=O1*^h&^Dy9{sCATo(rYpRjQts&sb!$_3jA{>t-VM^`mH;8%7$ zFnSJjUEGh%iaL6T1ZO*w) z41fF2!>$s}`b3F}tA-E`r-bk4R@0K#u{+x=jS1Axg-s-$iT?Cp*7pz%tFS#hdjaQ4 z^^B|6btaUunlMxg-Bfxj&XBS_+oYFCzf)=Jz+2^a`!V#@VDr#w~;mUbKRz*1OZQMm-6u4sIwKEx-}03KAZ>tQEvyLn|4NS%8m!!(+ z>)mu0VW-74SBSx=Pj(Mv3rX!VV?yQXFxXTVTSX7(hrNquh8+Puy>-S6gwNl0ez!^F zG&K=&T~qqr?_uP&YJcpgRKaME&D()H1pGw*YZzP|R-&wM$c*-9_*CTQIV!ZV7xn{3 zf{sq6sy(0tyb_IXqwfczqL8g(;)1OspQY7oGAl>?R^bk-+#-9DiUs2E+>;&raHlG^ zt_}1sqsY71f3nVayA8qrqV}n7QMW!Jy5gplU0L_muaqVnN*7q6ADijlvud~VgFrv; zd~kLqCf;r>LhdMiFF6xyCZLO&4k$tRYK%Bu+^_Ux6~C_b3vIO+!H}p6JmkH2sSegn zs62iy(x~K;0569^4T;HR8fVuxo57Tm`0rr`FIKSYLdzlr@l;h0F)!QqZS`;rvS!&h zUB6f2*A#x&-7h+Gy8OMrNS=VvyG-Vyuo+CV@ku<(3AI$7eo4|5(?*=;nORr{&)S7) zV|~6-^801xR}R%%m`L8 znB3cMtvSzhYi8mG?`PUAn-l6zph)kae|w5Lg&$EZAs5X8N9+cqDJ55t(=`H~^RMe; z>>FoeFNXbe@eBFgy3j}2S{hl#T~o5 zo7(qY>q|d4Xsh2tv4d%&K-+}YRp}&{=cEPAPc>#8{fFax)1VEjo5!{MJ->gtAbqT) z{2z|^2-r@J61;4)_wBk)qudLEqo))l*KOrfGuo`?HLN>7<~-!_8`R?5;qDWfcSqz)=y zAPgvy5Xk68fg~ibY?FaV!sGveDYXG*2>7TJ|JNPiMvXCZ-8j9UM%`q+fccvX#(W=i zQ7jRuzz3yF@ew$q!15qjcD7rfcZ!I*ouqIb6};Wzh5WX=H0Y4tL2_|A&nJB6*L<@x zE{z#&xAyPVRr7lcxZ6a+T?pCZssKG zfWl`d9)!ocEIa_I{5;jr*!s)NuCP%+^BRu`cawxu@HRr}QE2aG=A)H*L~HBkq=1}R zCHF_rH|vdGX1h4`_SEXslDT5J22@HW-EvuX33$JXp#w@70{A*I!my9*9I>L8kJEg- z>oY>->zlo4eakJ=^=sWk1zgG`%b;Sy(@d?>nVy>E^yv*k>7=tzYE5KfS~B$Xbg6-t zMOZTNa)_w-K2FrE$Mq&xn2MICTX&`B5H6DUK9KFl zgop*`M_W`Nza}*}nhx&d2)oqrR-eyt*VmH<*R;=z?b4N#;~9{P**qKM=Lt2D3BsZO zI}}KG%LPKY#TRE&zFui;M)^lcr{A4qt?s)!!|y(mnQgzy10UXSCw^BztVmE|#WnXK z2>yHgYVjdyegCCi|s+h*h#SG5de{8u5LSXmUX_J5fj!;{%6eIu`v;l*kAPIQj zZc?=$b?yLN=h@RQv}5!AAp~FkY4-&v{SM)wc=%cGVLC`UkUV`vgL++v_iUl`@t2?F zKR@fGd>WsSXPv>ar+s?sf=?oU>xR~^BPUv^0~~Qtuiz8F4Y&F*mPn7}=QS*Zo(+5n z?q5BSxvk1#4iC?dx-Cz}f@hmhdYdevl(ZsITi05aLuW!;iMxBGYX>&?$i{JNnyTA^ z?W1B^oRF`)>Mp}@{jrI$)=ux}@6ZV-qmt5(jrH+z*rWKC6RIsszqO{E0oHIsva%H~ zKP9b_O7?pPQh`@BV)8l@R;=}L6}={RMdzT}Zme-?9Iq8iU%pSzk7BmG4H~kPX#Ufu zpVQAvZ$0-t)FZj0^-+%mDUE`?{Y(vV2(R<*juj?8(Tw7xGV{Hp#N%mD;2bW|`xM20 z+4m8zIsTtcI}?rBfwdDK6~o1wXO_T==RwlrU z&V*BMU%gN)u1v>&hVtNowM}b#`#hIO11vxdeBa8^kpG1m!Bh)Opn?Wy0+1bez zDUv}zNB`FUW=SCXC8MWn{#cPzUltdn6ivW0o0G*&n_4eXU%MB~vH-3PsKPKH5vSs* z!f-%bEhh>*?|}*o{wagF5T(8hxZnMOQEhn(!N=N4Je}P=Ed`&$9_~0#WV?S9m9Be{ z@bVZsVIt19c-DF-`^V@_R!==KJ8PCE?_)}-&kmOQav(r21N$sX_C;G^1&qsNwPnBq z{xu%RQR@F+ke)CFJkFy)gbhUEl`CaIA``@tRFrR?=czY5ITeM{k1K^Yai1ISE10ZB zDXV}C<-J0jl#lu6mRqRJ?c>sbZR~$>9UbsHt3scGpwv{L3qQ)=ZE_OQ1h3V*YTxt#SaX&nsn%;5BxnNwd z-H&8zYxIuB)HwtvzZ^c3FK}H!ksrMH1xq#W@8=E3uZzr>IdXWS#qSedXYI$IjU-v? zh`h+hcu}jrkAYXEh`rkX&g@TaY}}{W*(^8BZ7?%4cm1_$KRd54Ee2v@xq|%hcA4t= zZvv>ba9`omP>Ag2gOxX%adcMjMok`n>c`!l9QHiByC==$6+5eW;zs7|e`4ObzqdjB zquLbv_$e3+HL)RwA|q0;M7_43Yo%Sa!cWs-%sihp}o zT$zz-aiz(-t*gk^gU7XVvU)`@ zZ@bdMWI^nM;DO1!sKIx1(bi?Q@sPfQ`hsXPqq#|+$@>>+WXo;_MfZ2CZWk67gxn{> z^S~o}uv(Ft@-=G0!)5sAPP|90WMiL#$kkTGkT`qqf)z6|+ncmE z6qVwP+v4C}Ye!SjPt(Qiy**Dep0Lrh-CDj~KJiSSu9~T-$b0oQCqAUk+_&zm*`y_# zr}vaVB89J?beY8?Gq(TrocWnH2F|$~&iWg)v~ImHUGNk@o{+=6dmlBeEk>im1>&GF zP7O#`_VKGvX|K*qZut>Q72qv-79&b4ke<@b!}<`EMYds(^D(0VzL#c!%!C5jC;0uh zh4;Xyj#=*RQtAJp4Y@v(ddQ?b2m||=>3j=b)sg>xsvf4OpTziBFD4nS9jqv!CzBr) z0Xr{H`>umW3}d!rUXkf_^q>TLnD5z!g)@iTfpHR+^nne|E&6yg0DWy~>&850L3_@E z=i)7`3Jlrj-juS+-Mu=1;Bfgz9`{Ng|8aOhk%d`d;+KWb597#2Npxwlf8881N3wWq zM>-Ar&fekM1cAmzI2RbBoU-VeT_y-2zXFMOaaja<+`mLhsTlny2*-+xx z%j<+xS=nE1k6u6a8Z!Py$QnM2adSOOD;N{hRrfto?#=g_xP2>q;+gLK^pdD3ndcvL zl54E}%wB()Qg8o(+b74PmgMov_R4#%R+~6jB$gZ!*b`#r;u_%>2eabdJ zW#*@Or;L}hZ#dBWZPzX%#X0{Aam^eoX#@{R^UQO5;jyAIVnvB=pv_`uF+?;qdHotCpfO|GTb> zE_vL3t_Q91FCtFfCM1ZE_f@jwWq7L1Rehja@H}yD^0m2*5gv$HX8pBPoW&40EK+b{ zUC`L;NBGe4B;Ju==x+b`Xq%S)Ks+@OFju=;4RuvJ9iHUe9v<6z?BQ(j&Y2yvIvX1` zGxH=}66;z3mD%G?t)CgD$aaad$=%6YFGJ7FZ+qJb)c37gy3GqImspzgG8G-?T}w%Q zs0!(F*F}@hxS8W`AO_z3MVAGbbvSk%SLC)K8{5sN;qyT*cMQW7%$(?$t(5I3+|T|n z5#tbRxQaFHIf{>bHnLcpp0sab_lgeV32O>#g2X_{lPR z-`2{SESAK6@EP1NHrt$+vZ$2mPoIR}GU4ZctB9YuGNl~6~LFPKuAyG#ORF18O?{l0o9oy)EL z)S7fgbpH-Z{FAB+Z}PN#ZZ@?E%K;pU0FTVb3)6}jV<#a@Q^p#WBW(A4=a{!o0hjv) zTLg8!RZr}_r9i=3@AnQE`=%G1lK1~eF|E)dqgb;e!(%Kn#wwPxQe zpToK{bzP#)VaPq^xKADga0oZ2k^y)^pX3fqJI1EFtv0FU4$LkKYOdZfBIq@ft?i>0 z-X6cRZ|iR9uHg1Ef&Sk2GedJ7<>+EWYiM;z^AO$C6~~9asIweK*Qp(TUBu{xR=H)q z)oew+-3Oh4v?va-xm^M@vMyw4Y+=C9MczzS(A43(kw(sRMdSxBKckV@x+NGF5;=an zsia^dE`U^-js2=T?vf69_$K-*d&M^MJ-T<|3dhMKF8fnopxwUl@*!v$&l97s*oAs>YBRz+>R>M zqY|b~N1G1S(``{{E#vR-W})1)>+xe^LZla~S~Gmk-NeW6H?Z%@ZQSI^`B!A(xZ>28_EjQspxk+C9c!fi z?ZucQpRqIccd)|td@?`XXJDrIm;RlO_9)|Nf8w$;8Io~bu3EgFO)d<}o}4hJ%c zyGo&2HpS9Cc6n;9T0%D0r5XF8KX|H#4QOnwtc}poemg+x zkHPqO5=^2+XF;j z3WbL;&_ui!Nd+N9n_m*nd;z^;=>fD=RQpv8^w;L)ggR+Ol8wmdvnQen{(8E^^-^3Pae6^8C@KVZmXrBm zogV2c<3fVBHHYoW_;Xyr2?Xcfum_6ix6ELi6dPh6)NyL|Gnm!RKj=M-=7UAt-UNaD z^grW$&&WXLOBpGCP+DaEG9|atILZ1Hi3+;PjOO^H9!8w(uWvC=XyX(` z>QjI=R3_a6>^lY|Xfqf%!SI>&if$@;5A8ls?GvN`U?aNrsBHQVfGMg35M5bFSilf&x%muhEn3{Ef+|u8qW>EPAZ*tAE?0ReO}ar8#!&m3$HN19%%!(WXWP z-d4)^05Rd%R5jxQxt?`A9Zch3@QL(;-$dow)h&z2v0@;fBI8FH8-SKqK;T&>$pPL6b0SdjT{ z>fq{>Q9aWqI8Clt+cY&yIGc@jlqa@9)8ii2`GXL?XHO>FnfIy+yTNymt1xcHmo3FYY9m&;J60t9##-Q<%#386T z=Csl0oQgXi7t|=JLmRZ!V~vM~!s>fk>2jjgy>6p-1jL@Gu)gz;vm*HHgX14=7G0Li z?lv)5WryyHn{ue|__2E8*w+`j`)3rJ7SI{a`F1PD^G^Q;icI!ay`2Yo(fc;jyYMoL zsudhQL2`3XA|(mollqc^t?P;Hvu(^_ZeyZ=4WtZZ_iRgDiWNd``f!Y znw7B`@v!l|e{cR+fBmYGJ^r?_HyiS>t!V`NACARUii+&drphzk1LLN}#L?a%&rZZE zGSqFRr=_gzZtrySeR5w7@U6UiFCHoJqay;d-Mw6;M?|eD?TEPBb&S#{yDjZ&D!({t z&^2xvGvxjOVlT?!;*w2-u6|b~*yNsvsx{a~jD6{OrQmt|4~MV}SjvZ_SfCuNT9^+E zcLa><%5r0!MW0WiYCLB0maBQo*{e~4lH`vtgM6t!Hc!$Gv(@kq5x+%I&+qnJlXXX| zWzD{<>*>$6GmHM*P+MDOw=1d}1uJ8lJP5gFK9L~WYE|^9(nN1b7(9RYVcHrQ?er~9 zh0QB_2)UxK~-Cm3InmIMY8o zk|h&oFZ1%NW2OCf&DOK~jnLXpFu>Mwv@Sv*6*4rvDaQR?NbR;drB5#%5%%jHym?@D9G!?2|XAFbL4jk z9;b2Ap4o4D5X7$(LrPB5rVn!R1)FrP2c{VU1#c z*s8f|wLiRj=i8Op(g1apS~uq4&CJZuhv_Ol-oey>25-CAHshQ|KCz{tcH@5)abCyS z2z3+9SuOk6?qs@}K!$brHsXoXl7kSy!BhC+TK8iGQph)IgtTJa6(F8q8{jFt*HH49{V+P_DvKSZl{(c<0nyzL_Z+I{zsm^u}=@lkQtol4$oQ zGD06}Msb(XJvKzirZp4cR#!mMvC@yfaSNUU4m*`{+!|p6mqdr|oohR1Qe*qiaYGAz z2$_F}yjh@^=n2_g8ZwD~hw6)(ni~(k-Jtml_A#klyI1BCbl62tPD|A@T9JCsg$>H@ zMDxTMy@L+tN*Fv+87x3mvIh_LM!sdxpu7|KUZh)YWSS38J1#;fvvW6F&R>k}PgbTc zMMMa|`sAeOzTtZGkSPkU5e%wekKx+Az!y^^FN#N^%6X6Sfdy{j?PsE3+dv3#<6!lG zi{=tm%G>}zhVn#u_kJGAJ|xyres{#hNei4a@0OQB5<1Sg?nXR*tZ-AM02i6;Cg($` za9G%@`w{;H^(bPf`M^FdWhZ+734E5p&eJSVC}dLNGp7R(3;#YWN_9nwi^A|(DKo(Y zF3Z3#ncLTJbyBm%ClMhDDgfcLKn!G*!hf&vnfGsLD~c}VKKP{Kp(jKAKZf3c9$v6X z2D6X%`8T`=H-5H{d=z>lHG$kRxbY!jGJF651x|l~~R?u&P9bg3< zVtKigc#7cD2`b9UAgXT8E=yL*LaigqoUBi(3NUKSH`{RaDAM(Bfw`j&xIt1<3V!KF z4wy1%mlI$i|C`_`YU|2v0tk_IN`e)DV)=uKg<%xvzyVK6Rr!XO3H!o%!=3`s5>S|c z&X`o;)}D%r3MWgHD#(uLJXYv0RR)3(;Z0RS)(XD<<|5F)i?=HWE8m1m6!n0`4rEp$ zz~Hd>7KQGOxlT3Wf6)^ew*WPbsgsyGZ$~H{`xUx$BTwp0ft9Ugmi&J8S5(hWy~8(s zNp-qI%RLTpTya~~lZQKMgb0%bBga|Z3pLV#%=pI-V|$D{hDJ>^>>PIa>V?K!i9ZCt zG)$l%sKi3y;#`-S{l&I9jy3;8achBw;SK~p_LhEohJkLCkp6|G=W3KOBQZwv9TdE) z?bXdSuCj}$KAX=52vb4#?PJ;{&lYpV6u*FPX+Y9_Q$cm2i#g`u%MXZ{8kWa(O=z-M z%^FiSCG3lvn;m#YB+z{vGOAyk<=mw=`<0(SZ?RUDu|t@n`Z)e5-*t)&Q?<|G@=KaL zz|JBfu_8|8?dK%TX+E}y#u~-J+wIG$u)4lqDNgRqj{YVZ!$)+n`f(PuSZ62RHk0Sa z&uk6%%|uZdaY0ZAq(h@S{oC9%>9S4|RKR_Y0jvYWPrdB@iDyf0?l*V1!J5b1+VwXF z?^u*T(<(2Y zdpxr(d|+&URrQA@-?1l(hL0VIywLk3uz;KezMXPt@ajKqDp(80w-Fn3Jq9F`|H9D6 zSP}5|NluIh*lUOujmpyeNtt>iV1w{(ca@k|A-OcEh5|_oHzjailg+Kn9GV0}4+s>FL z`n6r7J-QWhS99Z>-v!RNXndcUc5v#BID5+Qod49Ch0&N@F00m~!o-pYLa#wB#_*2X zWL|#FhQAxh74cN6mYZ>T5!7{F(hTu!1IC{Dq>R~-&3T4e*^za9rg!U;=w86KyxaWf zEw#P#na6SMB;w37p4+IvW97CsE<(2{kdGJ-HlNRFv12;N%*9mJ{PIpnEnMtPmQ-F< zS#vNs78ki^YN6ku0dKcw&ucqq#neY!f`bUN`g=a0a_JaNfcA@yVfccaE?;H)IkrJd zb4qAzJa(V$w(qE$#d6pds{VzTs=?;mhvCIivrS>dUhA4f8aF%j%(I5kc9VUvqsR2)a60x2>j7KdevP=AIo^32D|d>x81#x-P+VG?;y}B3* zdw%fP$5B2|2Q@_f$AGpHHKjK`^BU1LqV9% zN?UMH@RmnDqhN>gjGyE2tS2>*QfDLe;)S!wAJN&o;)sUYUEbIcmlMW4vyLElwB6jf z5nBBmu`y`N7q;&r{}zhFV~anh0a-K*T?=Rch(%FpC>9z?!}M1gfU;#x`@-dnl_PO||9KO)#K*qmJ04 zi7KiQE1Tt*L3cIQ=>?U-_UXz_7ja}%N_*XqL>0c=DMgKdZ>Yx_ z8lJ@*N_2OK;Fz&e)q#zF2|WO5sCsV8&%$k$vcprxKi)lL%sfr(Af? zZb}F3heWb>7&Z%e#H-{A<#GF&<%o2sMt3bJQW8MPM&w-S>1wKS;x#Df z1S!h&vj2y38w?v#@tLWgvfW-K!QTwIn<>RnSP)gAM@EpV8TDAPpM)S8pPd@Wu3)CF zd&`3y@0RP$`AvqCMfNd4tr1+eD3_3E)emSkERiZ;#;w4oM?#-`i;d_(Foyu>`fGe| zwnX8R|I?uW@Kj*SkkKOphIdW{g+zr>y!(R6EX7D#!uBk4+VJudx6e`$7Po4dll@F5t#bxG{i`D#!tnCuJ`TuTt?D z-U`UB0ve`n0=w$HQ~<#QMGR-iosy*_FsW!&!~>;^{$ntYXV;feEsX$xZNS>u);gvZv)Q=DNq>M$aL{a{|7o$0X7nCih`$EY((8VBTiMw+2}#!Z|Hfq zm~vQq-MnZu+Bh)}U2zfNiCEm|_`?s$!3g5h)1e@7Qkd^OXLcute&r!iaN{0_^oMW~l^ zQ0cHUX37VyxsUbI-7rFz`9({9)k^v;wPmr;em{@SQ1oL=V{E7D2Cgxqs8I9AS7=SK z9aG}6i@Wb*(x%Q0&5v_mq+?(BBtMD9+cAfTh1^po#Q>t2*KU=oaF(+x#yx-X1xb&cls)yWjM_L(2#>XR zxJPD;pL~pN5^*9yMSz49mjm?Y_P7pr*v0ET(I?*v=j_ggYL@8gYrQ2ZKUUA%(@7Rc zb!}_Zy08}Wv z^7S_l($JCQ0OOQvxwS#q4wdY+BCQt@o_+qTVV)b8bF8e-)gNKROIm-VH%@6LHi#8- zuQ!bwTtV!_ts^Gu%O{_Up3Oqvl*iT~GdAjlcZBvK)bIr*VWGNbOlkQt+lv$I`aPUS z@a8S+abcTwLJyAmaW8(soIfvfU)Q2U>5!%nNKeKruT5fSyW|wv%yOv8*&}Br>V{T& zj5&KVrD0RwirKhm`G#VA|5dob-^N#7^$^O+hL4fomaH40O$}N!ypGEy4H6??mby{< zS-1Xt9!ckQMMdV&R7<3N@wZ!CQNMTY9&CI_TiY^5riHbmvzFW27PY#KD@!AKi%0CMubQlD(hhXz zcck^OM-oJIoQz&_o%5M&0mZ2kJ=N@`d8+AmgkB}xf6}652KyRq=z#c=+2~KDb6->` z-;wWIO(UWi;S;wsW}tx=+Eo?XJ|vy+dB$FkL1D3PuBC6M^&%Z3^l+G4f56Js2a=C? zgJ~yNx3lU{Xf}qtew9vgH})x_5rfZ9ij&xfCh`Rhv7hKZL%SOc%Mly<^$pIx&Mzoaj;VQ}oK6p9MbqdDkXL zMVmwK?9z)7YpMB~ z2UStC*D2ZK6;8=(V)88E=pAP#9}#fU3FhuJVd$%sI}94)?eIwaf9=*~g?W(M^-DT` z!^Z83yOY1)5y&v_&7rh5WLC9Faoi8@Yt@nKBFZmb5g})Xn)g9K{-2 zmmAdcpIhu59bGL6elI}PpctzD2v9XOll889@Q2d6{w{AyhoRFP`k~KiGv;w@Mh2&-4V8Nicr7q zT-zU`bgs#d+aUXec#{~jgS!>_c(xo_W!g_Fuz0Y0j26oiU_FG3%x3_BPrXOB2?9v> zJ&qJe{U`9ANrDK``6r4PB56tzeH}dd!bHIR)}>(vMarg6K`7CYI;nqr7YVEAd1)vy zpa|oxZkBT1lkR{qhrzD^&YLEAf<*UC5Uil++5VS=P*9stvjYB_C{t9JO7Eqf!b%|5 zeU6)tn8bGh<^2f!rw1@h542OvH^Iaq&prgNZ!-f7IPi#B_tf!%&9ww&m8F&<81*-G zaM`JeqYBt=@8*)>Q2VP!kR7H3n@-?OvCnbg_&ilir%h=m;Cl(E17@Y1-06xkWH6S2 zBwe75-{%Ux14!Hr_%}RcMK{23PnA{SN=i@z(La4Q8QVe*763w)2KTPiXCP4|`ya7S z4rnA~37`Vn1eb7zgq(d)0QMsl)!UJUZ;N1H#{i7QaH)Xri-Hy<2`~r%#CCxLm|NTo zNsexS@G^m1ESn?>rFu9LDGIvH)bW@R}-~l!~uo=KOpJqKRBC`iuF@dQSIN*Sb zK)V2Nyi*@A+XG&41d#b}*vXvu;4>7Um;pBj5{ceNg$W?>fcq$b;)qaJkzAj2@TKYV z6Yt?#N@of03xYS6tt0Ck|KWr#Z!^=EG^8AYs)PGLByW{kbiu{-%hzh42%!Nf2>&duR7-sukBjs z1`^s*5JLTNjd5@b2-;M+ogmXoreeNQ&;ETnM6D=UIh`V(4FNJ8Xjg~ZSl@lp+_MC((5LgN|1}<(b3V?=_)8b zA$lpI`NM?O4v`DZ*f`u-JTeiHfWWW<+CA$(d&`<}>^-gn;hNtQ%f5e>ToR9#ik}S} zR+%02jJ83?tTDZhzmMnXPltc0`-*Y#T;vO}JFUIegE)=~Lfp^hRAzUb*#3mssAtqq zcpJNT9=_2WSo9j?SUlI9?8y>!`0zyIYSz??rxx<)>U8Dda~EbZvp#uadtBQI)bfD6 z#H(pWwq}=4ij8DnyOR=5oH5;dBNb3*8q(@BG(z!D^f+md8fZ8GAxZBB{c%3TdERhW# zSKu|B`?PBIV`9Ow407uoSq;#x*Wp6k@9W;|fRt_A8Pp26!VT%fv-zqTE{+Yz2IP+) ze%|JXlPPFTki*wF;-4G)M{R8hXn1e6_>7Kx9Zap~Z8+DGw0f3Fuj&4{5`%7NFmXJr zzleS-cCn}Y-d*Y9%cvK(L0rE~e$G#zr3A4v>peW%)b_~qb%S_7vs-(`Q~*pu ztpk?KkBT_CK~9IcUB^+<*{{Y{Ec?Mg}xP34r>_j-KB!WAtd=U*#-TE2{8US({XFq z>HD)L8?~tIxE4E#*R3Mi*Q>F&-0ikH;>xP&jdnzNE{re?i1uw#&)0&k-=Sv@kNxV! zxu0b|t*&kuN8XSBh@|Evd&%UWdKQ2r{~dbBSLtWC&d2cp=3lU? z8(I%j%W@NeWL$yS9~h{_VM|hlstb_mEO7 zqaK^yHi$Z+`vxnU^T_5)PW0qQ8nv!Edr3}XDi|@=zjl{Jy*`|t)?DukUlcyIkTj)Z zn)rj?#!pN>PFr3^DP`)lEBLK*-+T??c~JS%lj9YH21Ex}fTniU0G@{up5FuMbef4MP^KkaF=h~ZgLHmm96^_G`s-l`QV~C2Qc7&I3 z*=H~#th1s*KCWLadn|d`YSO7=>l@RQOnay454@OtNX1@-h3&8Te$Z;(*D-bJ?13KL zZLG$O4t5^ri4ApK(@QmHgoXEt+$|bwYkuSf z*)JB1Za;_TGOVMzoXz$2Jp1FxX}JZHd)I$XdJfd*j-s26&^x(jbg={O7sGTAA@kmV zwwhih`n}-xZklX@71xCs;j+@#*;Hch;9gH3iaI;M{idhKv8F%9oSMFV_4LTR3b)-Y zK5Xn8vc@O$1a=pyKFp?270L& zLxR1Rb@kaF4E)u8{u^?tMx|QD!&`o2ucir8wTiy?l0&`x1AyAhRcgLsNKjv{}IQ7lT)01H$ zDBHA>HOSdE*DlR(t|fWg^*q}n5LG9#bz!DyjqqICq$BLC?O&@g99BY{esS(+kloYx z79ZJwG<>JaSFam&bew0>J7v1$jCJ*)F?9@z&pbX!+ugHFtcU-+!sDB9D`pVNasln0 zJy<0`gVI;9?BSL8{kt!pp`8)>OxH5HR*O<5Dqu(l?_D1!*GGZA%ME5(?U;94XC(3@ z&w;AKtj)f!M+&G@rXY~;QoHx<>Hj0@yQA599JjUTQmZv;w??(KYLB3$R8h5OgsN2{ zl-NOAEo!gYqh{?*j1X0;YSju6p>~Z#tr)@Qz50F6`JHnmClNQ|4|(!TW{Pk7sSKSH zR19zQsr%ILT=pMPP5rhHENgT#+_{{@pt2qu_o25N7~BX97*`1^rli}~ryeN1rcM8d zyEvF8?J!B@nd*~mK=vW>gsU;WGTb&|3|c!ZrK)-ZwB+jk-vxX^PaO_SlKj-t{E<^| zgP3JtKo77;Ou^QFjTr8#0tyxL;}88M>p3o&=qnc^KTBMF1E^VR?z5-w#ViV0Oo@K zTCqN}!TbBS0V8Z?5{0VjvvbM`Fi<`~m)v&FN!VD=6#zENfgllJqX8V0zzoScPypfk zKjV7=2jCo~N&*a_fPMv>)&MvQfWa(31BBN(pliN+1yHwu{fwLE*7|cJ`{R^=n^dN} z=XoX-z(N0S=E7J@OVe;$4*+nVA^?;KEM}aGS!!{YyU*iH|Ku)UY7SV8%e&7H{08R$ zG6C?g19>KZulh`-$sj!pH|t4J>bg{aEkXC)1+`%p&B|qzG_K#$=GP|B73Co=7|6qP zwnUNuMI|>)wqRGlvKF-oh*-Cqd}s?I+e@IGkYa_rIgOh9_1-KbS*WC&=J@ zyMtEc076?kj;mLlP}%9g1(GC+dbW_MdF4Ww(Nf_dn76>9FuHK`}kUQzg_rE@#nJ2h`)4cX-Ly< zg`=aG-zLqAAKuz}z<`(;Hl(oCdLR*hUG*qYUvtdJwZ6SA81MLAj_bRBQit({! z>uL#*ty(T*R-*petyPseQ>R($u-AsT?0y(X9D{!*Wcx4ZxH)6eTn}{I-mLyKcX#vR zqgcX5zNh2&= zxQt;dIzR}v0evHwuYLOKV0TSx$EKLePpZD6<_S(@*sr&=tt`RhhZgAliOMRHHm0+l ztu@9K@a1<3^S`WP0hzCvpA7EV-HEHTIRjh$VWk;zD<<00A1FdtB+3oE$ol zUe?W{F-s2yt7io+k9t|f5&y2heFw+5VsOX+D={JJGp*wx4qTZJLK11t{#<21`BDW> znzzJBX_3jO`_voTBc$_BtJyKl*%SWs10O_qbR0|LRzC{$GT?XH+v%J~$?_H^^~i;8 z(q)d zmM&W9XyNQkXfEE#Dt|CJhBftvFM)7>mm91Op0MIj0|h<*Q8*HY`u$*8=(mGP-B~0$ z5(r!tcG$chUcKXEaOt;_}YKtNTc^_j(;(lvm+Uf$68a3AuT| zB{oxj_H>cC@|A=KWkRdX(2B^ET(7IE1)HNwPtfltt|LHW-;01g%fr`&4KrSFe0}0v z`_xNPL%gkopUw*DZl7%)w&m>Zqjl}LoC9l&GSe2MWQ?|S1Y@%Qz zy9v^z7DDJkwWmEGl5eMAZV0`ZnKPnW3yQivaiJogRIw>t=F{?XXq3h~pr)I@R#Qxu zrJD7If2Cq-=|sMlDH(@t^|SEGA_c*EpOE^S;3VCEsr|3SXf!$o%ig@x3<(`DI~ZeW)ZMI7o;(1pwVujwq!flsIlp2Df3EEctqh znA_CY^2350-Pnu&WP9<7ZjgE1GAdb?oh<)FU2maPM{RCuw z+{vTm9gZ))M7BzsN|=Wn8_L%V*BUwqle{k3%_$OJZeQ)iwbeFX(9r5<%vLL+I^Wx{ z2_La;uYNP~JHT8^8U%C^g)d$Kl^Lw%P`WyRhm-&B8Y0+~0!w{~k_r zE1LaCpA*gXP!i-hN_MOB*yV&8cbq{CcH8A+Sr_u#^_o%}k8br!)nFERVo2Ioa-AYK zTjk=Hdm>Khc*2HG3y%ldS#y@tO&7F!h6NE`Ew696wMsPMTA$-cCH8KghNjg6c^ag< zT%z+v%_)OQ#A{~xvS?YkbvU5-y19p>DyLSU-Kx!a7WwFZ+F% ziV$#6&ru-vdz=#7l<4!uuBkrJ+htNrhO~9b-0@-CP;{*ZQ@|Xb#sJu$(@IEo?1ABI zofqWNTCq<%%BcMK1rIWayIgp02D6suBgrxI+AE9)6A6B%_TnR5Re~(i??b0LWHQ>~ zD%GLLm=Qh+W@d0Y zu1R`W5xUSa<-l9YqaEl7mAyWgS^2Rgh8~~#*33nEXazS+Aa{#~8Egm(MoDUtqZW`zNE1(HA29IFvB_?3dE%XT;4>MI1-M-#4 z%Qii=<@G#4F=Ix6V=NGLW)qZVN=%Q?S_PmP90&<1hIOm(FEI)1P~0mpkJDGBmu655 z24Lm>V@=Bms;gc`0v>re{FwkPNrl3c0%f=nTB3P5)G5Y%w^OKrOwino)cY*fi)tN| z1~~%87Xc6kbZzZi3l>W0&;v&IRNVjS{h%uN0T`eG+y~44TO9y z74mAGhkXQ$9^d@?48Vy(-T(MM03`B$%6px6?@RE@_kg0Q&Uk|w&@s7=4g)b+h+2n6 zR3=wXX9U4YoJ^G(>H9^pa%;-hwj$CNIzw5+tHI5GNxW+h0)Z@)CejT7OALH!_KJ0)RydBr7FkBEtsP{1Rikcw&2Kit4DfE9MVNuGBIw+ z=36r=VQf(bw}NGNW^mfIjt(K$g96cG`DEOT93rIE8nR#$({BJ&#Wh@aVU(D?wYeBS zB=N}>YBo8eG?cW*En4)BrlGKNXRQ%2>(wA1WKVJh$9UoBJKNC9`4AsT-?>eYQz1=} zxvhk0+-dHCq4W$_cj)WKZVL7K-CYfH_b!%2D%S;{Fjq0hSSq|waG##Jw+i_-R|~0i zEy;Cjajn32lq?ctZS%c$@DJW`TXZZ@ z)HFuOu7cx>P5F@b+|9XgS8{iW3&sMYKwKKclR5W?&xS4A3W-hOt1H>FLHw#cCo{#v z*Zxkxl^z{>8~*Lpox`wvuLEjLO?jC1ZgI#4N|oOgGM(^@mgw|P)TmA52q$uHyzb8k z`+oGiXp=-4<=)fFGlD22LjCpFC%z_=TruuSG}8{prTk^a;-jZwRA06wXPedB>pWPJ zf5pgFUrwLOudgKr z(LYqK3UntoHqBG!twZ-Mg)m8`eR+I5Ow*eHMS$=$)yev zOUnkD+T#+Yib&`M=TzvXXeeL7$ThHG)XI#RHHzFM$;yxTk_dNc?s$bw??G6> z!`?f-#|qD51aER;g&eAb1z5euv^c-hXy@m0v8o$X2uEvqI~~Z@b!7D-?rv8^8%xh7 z&oOzeJVCbbc)h{bO_z(gAJe}+fGex`#xH_m9Xl|#N1L3hx{@qf5UxsOe_iU>d!3dOHJDN zqcn@9wHfkc1MP{li#dl*nQY;rM@*NU?2HoNg?%;t84+%pUR z8x^pdrFDkiNe4<%o<7b)C0!L+r$fc zys4>yb>!PhSk2^QaCB7D_R){E#bu~q$k%1#%?BoqZ=-=~l;|o_8aESp6I3_53E=Z^E*YQo5Ha+}Vqu zf0GleT;#*q(x)nTc?x7r#s8xS27@|31yc@A{Gkb7Q||!Z#m_F+aAL|dZNak`Z)-O` zjF&KBDCvEZ1GuT#(&PoJYnX4X>}`nb=~QWg_< zgN8u#2X-ygbbsBbH@!zAihByiDghl)JKb>rn?I4J#8$o(F`FW|lYWoOtoWw$NVdP> zw3sbuely>-GwC+Jhei|gQ)G-IaF1AXy?pk=w*=aq5I(IA)`{cRGtnR1P+wl6?65SM zuowm09iipWTOqm7rKCXtB0QEQc=}=ms6Qcs=Nee{`8Q`}D^Rng4$!q`vw(8L-F;O~ z-r||2citWu+KdT{%c`|PDN#;MiPNS^qc?9hFX+N!@7#n8P)^7UCIp!hyhvUl?zXWR zWF<(OM&8I7R(pvlb^9Pk6_Vh8(3FfBl)}`h@3`&C`CNvT*iaWnj03D$uDH@&|X-k`c0R^ zplx|!o!%r)*Y;9gbMoMZKVqaagStiu)iU_SK^A;n)M4W}F1(r0`^I9x3TwB!gKJ(% z#@;H^>x0?dnIAuH;GxcXA#2}l-PMRt%>Tfv8#))VMLMDzL8A#(^PO(ZU9YN}xfk6I zHTvu`29_;1tz>3}K1G=_T3B>h^M^hYfcyPe7|~k^Zo1J|Qr_5UI?<3hIHvnr%cb=b z))r2ZAdPuWlCMrjBfW_fD#+EUFr01h-G&KdqbEi96}y<%#dH@Yq@|wZAB8X1Vw)yh zo7lTe8~qlW+4vl zcAJslx9=7_?re!hKwD};8m}w8*5Ojw80$9%6H)^quZgef8f4Up#>P96<>CJ5(+@*F z+>`!Tfm#RGq3MZ9S$!Pn*22+qQwj0-lM$uC-yM5GUWvvbsID(+$9X`ZrLuGIE!qGEf#OIY(RS~~ z(Ss}RO0PV8_BfP2Jwh8`3hnMDZa-1u(z+tkti~$9X!DclmIu(2S$zLm;YBTg>Fn~< zXYK!;BNl&HdQFw?UhoygSZWp40e}bmnG;OEHeO1V+1pL^!Z}zd?GV^)KEJqVd0sgI zB-cJ`1#5`{wHbLIft!G$esLEQ{*J}c;KmD$g`7C;bD4X5gi2qDiMN?2;^kFCAgA#5uwE~J26(wUT)nlM?hndb9vt$&{RX?{geKV3;r9PkM0CV`G8=U_Jp75nvF3liwUszg=J#0Wg}tUN3+| z0sMHL1O#;F^F=y6gY&c>lUlJprSbI?U~E@UqBQQ`?p%`og&$w901kV=TMyXeB1!?_ znb{!c&V9f=2b>r9WB{nwpMk;Y$2S1yp1^thy)^h4fJI9~7=aSpON9@C@w&ouFj@fA zbO7nTh~mTIPg>7NCegOgDsK(5P#lWov~ULXp&IXUYcrF84rw$oi#zdZm9R1wU%7NO z3v}k4+=9*u*sQ=w9>^sbd3q9NPQr4d-z-=i(75{h%Xo73I}L9sw7-_EsPg-=Ez9st*Eg7beX_^SuiZBsw`}o} zhi&*Peiw?Cg$DYJU1rRxtV9MSM+)=l=`57F*775D+eoIU$wOL6o6%hbPPs?~%%>4y z!m@S*N`*ZcuA$TVsmJl?zCEHpci|ZIshHU^lEvjdR%#Wh>-a%#*3#UfOy_AAW{%07 z?qJ!ae)sY#X_~FK=D&zs#}l8U(IbN{Qj0!tNtH*!m-iSSCU!~fOP4N&g>Ay)Gi>m&r# z)W;MhO~o^Hdyg;o56U~QHmo_z89VWF)}Oq8S!0Vud9}TDD#$kPV~pNQ;xpBer-G8#Zbr&1OmZCR^4zbZf+ zvr2iLjow+UO@tV*_#KCedhm+t&MWYzj(8;YiffRnAXNLw{B;p`9ubzE)+wRh?yls0 z#^1I#I@4!36-9_}WkFbb3klH}u$#W(x-iLBzeY}4J^qZhD|l|xfC_+hEOC#RT39s{ zmb;gP5AQ;YTjq*<|CWgip#eHA&AUo|cz0q~>Y#|&Zn){lc4Ft93|Ipg{)xL#jCn^Hq7vi!}S>^;Ag{Y zTvcbl)RNqd=|L2{pxsUkw^xU_5w&>FUiJ>irV|peH`rtV-CIjMS$E3lgsiXQh7lJoP-Jd@+B% z+2@|TY?r2nUj6(26y63C=b)i8V$#y=n}wbY$53FG0M(v*q$}Bb7i=*oVZv5pJ{WW; z|1st!7&5J?|Lagb)@_vrRl89kStMH3z+(3iy58UHa7QkMQ?q-L4FY4$HII|46T^T zilM#C82#)OR_kEP9;bG6V;$#diyt|5k%wG}?RO}vLri%+oB(OhATtjfhpn7h(kPDZ z&jb=G+oo%2|D4z-O%8KKX>`ZN7qBVHHAV)S(%!2C#vB{HNtsyDwWI8_p-w0^>jkIi zV7@EI3(Z5boiy-k>FbIxy4D~4Qo)R3mkn`^PHzWx_rsp<-!5PGa5tF%giwU?_L%K_ z1I&@b+xxUvhVV5=ba)Lvf#-{^8nD|Hv>23r#dYIIm{Y7D- zN=;k-;oK4ivzDr1byoaxUk2DTk~K}E{UD)p8tY0Z6knu#g$jWW6wcYq{viXmoCbm;p|XE|0D)bzx0k!BIYK{1vg7vnixx0K4b)iAa#M z>MnSF`VEV8AxQ#nT7ASI@j4gK-PVEUsWVR@B54?Rk`3NaCHi({1iqn_nWpYpA6)eBW^9G zI~aB;KW&;kum%tM)Q>l~7s6I`4ZU2VC*8BKj$nwjYm;!u$7aNJbQOX>)t6sf6D}Q@ zj|z|Sh4x!Mx4Xz55WrYGl?bsdnx013bH(O>AwhMv73HA&$~9p>kcj6o-h?!cwER$C zV46^IIbNoL;v}0UlJCHK);eybTM>Mp=BJ;9i2@sc_(E)WcMNxhln~N02V$UNOvS9{ z{47tH{a!G&ngzhd*#XBV03``CGd#|*d#S_(z)AxM(6p{6FgZb`bq*PN=u@#iEapYL*OSn7*E67($P@hk2hf_p69MSd;pc*PFaR8X6|?+Y zUXM!vOp?GofWt9j#ppIGPc#sllq;O8!A{;P5TwyH;7?>D%#$FH!j6MO1`1yFTfRVueDd1`&YS*3> zQl%I$Q}ZtsUj*pSU?AY3ew7I@Eo$j88^jCqL;$LHaKbp1K9e5B1h2vWRBeENGaY+9jGoh@A3Ffq{Jj#eeQ-`)YF_EHtd-3nEnAg6G_lJ+kN(q=rNv?7DoT^*pD|@1X zu8VZS3;$cggBA&`QQl<@a|81Mx(-9p8EI=vWyYmP0ooxj+}tlO|IErk^8W7w$VB0U1x$R zO!BE8s^loegIqrcJ}1&4`0U$V0>_3AiYPNqWLKn*2x++%b{Xz6nklyyDQc0`3oC4M z9)4sXqm8+fQ}1i`I*Ud6X{{hy7B;8U+mK9v;PHwu*DSKE$_jVS@Bb)hv94=Qlj%rX zf8_9dWx;@L10i&nN4jC4=?8z?by;r@*=VKg$Em&gTB4-V>4-(=pVcI-Y+%DmTgQ@~ z*ULKz$>|AG)Oi~SPe8Z*nEm0{`a@S>aHh9==jXyf(vQrl3zmK+tM%J z+ub(ZX+7nwPL^xUxq5b3$?(BXozF$mY>4$9Q2v!k_5dq|FoxFk$yH~U*>wS~t%5y{ zBMbjRG-24|kF@(5q^>&AfEe0ai}y~z`LwXn&8%aPl&{E4x3Fwi(S4fWhp!SAWEpzY zEWt|+yB_kr#@!q5&6vdF!Df{nsrO#L>T=+RW=UPop-|^b6TEiqviR>yF(Qy? z79W{TADJp$3x(s>2P_s9$-9ytgSaKViPN=h4FmYo46`k6867YmU*A0S-l;p_OzZUd zW^^b$WZCi)QMwUmNe<}cPMF=z$HTIRPxDPp}(J~d>eq$Z4=G4yEMJ9t&p zG->>eCAmnu*wgCx0Om-KwCWvqG=2{uSHTRDuw0kTNkuOso14Jg{Vv!G_BCc&t_Zef zt+N}p9ywu+%)&**NEH0BqxDFC*E^`naBS_r9n9{L2CBENch zO;>HZZGqX=zMLqN6oX9VKmV$u6Gcs~B)W`o>d^2fV-E+S9)DptTn#_b$e?LW(a0Dn zsBH0mqy=iNTx&EPY4B&;qOX%Yh(77?Gw|2=!F{;lcb`z5A$!r5%~N z^T>aJD7_yRXYA>M+qj#xktZQG|yrH-nYrMx^;ks*#^~@^4E5>lt_fm3z-I8a-O%mD-dK6{A z2%54rhRt={Mo?!S8RzGf_yhRw zDgG8jtd)=Epz%sT#q9*txhKdzI{?P*fLl z?K+o6<1OK{>4gVuw$XK7d*!}oneMTtzaT+^mOjzMK{3(JFCkz7L61_mzWQC3k?L6j z>aLGtA1H|wbcP_uTZFdw(Hu68H012jptK$s8+&pI;b(`23l0uky-p*k-?b6A8$w&# z`qgokXPwOovw{rXI>FyGqH2@&7O=PL5f+#fFEKx>7f=l5C>bFKbZIG7b?u8AOjwJE zw2GifNHNL^i7A~$iFE)o`WK-PRHiCvZ` zEblOzZTv|3mEr5i4cq1&2)?kvK-mglspIxBX+g?ju;!ml}#kq22P<2}=5^->8lpsRV_jwZve16#4u z{b%zlDSFt}g0jFf3p`n*`U@-yE`!J!{~@w3c57Hj zi|id_dlIuV=-p87>zr98UE3NuXC7KuqB931yZRRCMJQOMYcI9D^SYb^8DLYkXKop) zba^XEY}4S|bcqi0Y(XXLAL0<4mtG;tBPlaCd~uGqCEk7KGBJ`ftWuBGItVD9&Di#1 z8>&y97xM|U-`rx+wQsdQ@pux`T#bI6S+^o0mhLFsK-m@2n_z5>;=U{@=VL_<63mpi zfrOIR%$)mN1rS#b<(ERH!7=%W=jv1`#(+f4=%ofEgjGu~Jp<@WHD=XMEyu;$=g!56 zix0WaDLXM>!j+mqf*Bwm!z&Yhs7Y36Cjld4*tg=4o7?&~3%DY0Qgy87^{%c`Tm1kJ$0jk^GC%-P$cmHCQ2rX0!`!p zc{b16F@f^;dl6N}S05Nt83#RhCkj0NJn9R4<6IvHvNjC&fjSX=MpX--|KlIv1e!np z5uNJB5C3^KORrpnuKX`@qxOsmuv!*Goa0geecskQ-vXl+xM@uF83^hCEhL4ETdqrz zMzKOg_C!FmJIcmcFYN`ItOx_)sKh2a_v`BQF7b)emQOo}L;SCOSZFO*)SK)#ImpIB z9E&nS4Ub~b>wf|@Owag;%-yebh`3x$a$Dw}2a5+po&D@+@cFb;|4J5l_%hqcwYkxvA#Oxztc2rE%Hn3QV z`0x4o+Ux$6E82gJaV47Ly)Qry_M4R75%75@N>65r-_n`|-c*XlJM>Cpl%^B!NaYhM zYh}w55Q04Rq&=pj0jO`bN{(T|j`+IdNqhEYljGlB7q<;1@bB+cJI0nLhS+hhNjvGY z?$?1MqdO@|e}g761OKDIBM&p5UfSW{feUbK>b3>?|7q9I9JHJ|rYp-Z4#0|I->4Fx z`L0XuP9zaNF&Tiq6G>fZd=2b9tt7E#v>aojrPXhGKR zT6wLnW&gB|zWW9C;#9aIv{LYWGbC!oz&p6p`PU{{eTHuNkN*~Y&#&?>;WWzc)kfsg zC7!L};J(XhQ?YEcX14KL(Or$-AA)Oh-R z%i4>;^HKTFE7uxX#Fa#$>Hf%$AtB-A)PPNf7xLnm$!O@*YISnM5Wg2ZVyWL*YkU#T zA%Z7pa4XDm(^QaAr%?oLi1q6p@5MSuI`Qr`GIcERF6GOKT0=-zU{sK&g8+K+Zo<izsGOC2RqgxoGta_arGE`?FWWj<66+>f$^gT_e&bopR+OZ35&H;h$3}K zp&m0)*sR68{_ho~_AG>EnP`t6oikaVNbm%&Ji6HyN6boOV-EA(d}{E!=RT8pd#$By zZFQ`^4_hLz=ftDB<3?QDiar|}=Ks0Noh7q=--~ROH9X|^AH`qv9JJk^a{1+f_?DvZ%@qwsYh{#0kKTE#LB+w;4qrm;-+Ga}m3raYNe=bkZM7hK0(gjP zPK2igz{Xt@(e17<305*1L|J8RZncoE5{|j`NB9dUdtE}V85j5bqtu7)St-kO%cj{c zb1`fPvSsS{!jC#~#=QUSUuV1^-P%_!(pGyNWzkO$pv^3(>zU4dadwgqero43<( z%Z(RZpS*6s=0-h08!D^T8&Ff88+T>~F1u}a zG_p={T2UG_&hK8vYrw9%UHo#qW_b;h-Dm3)C{ias=Euyc`iu~?V@HtAd~pzHE66c; zc0Bh2voE)pA<|BFKFKlpz*0G}_rbvBqYyvy+2s=$CY--r*yD~epc#E!|u4GJ6au- zJUJ7qYwaWK+6{R~(#?-WE&{IcCQ;6n1a0?Pa7k|arpEkk zeba_WSxd%QZ)&SM3?tk4$mdD;&n1fd^t<(*2RCtDyT8(+o+jm1uq2l$J9fsDcn=hk zcGCP^vN1haQ_kZ4lc?)1<<>0xk&^%8#luKo?#Wm*wSMY&zONI|gw3oGGN z_d$!=J#OLtgwyjQGE635y7Dv`M*rGfCe z>dm#pNNFxG;srd^0UO->(-CPkwb6pFq+twv3#(o%$1xt@7-LwTNVj$V7TEG-%3ZS% z1-+TRQRgw_ylnz0{VcMYP>L#goTT?L_?&fH&%JWqxZCFiXy=dnnAFFMgQ@OCmVN{< zX~Es>(%YZabF@o8B^faQ8JAKv(SQ0e0QVkzz7lZkyKls3(^Y!q_Bt<>Xi!9O!V#4U z!0UaW(+l|#U_@0_8lkyms0pqGg^+{PVqm7g{43?ovA}p{vuF;H-68q(sm*BDnMv5B^gujf4x##{3-9Y z)Om?)4u8uyGt+y+Z51ZSdfess!{SJQie#>e_8Ck5t5WfvHtX~1@<~08;WBgBcH&!{XbwA%Jdi;ec9;lXyEKvc{;95zH>imG) z^PCv{7x<>WsrETo$Cz5cSb$%j@iFlD|1qIJ2B{ga7{onikOt5*08k?Un0iNF;idgWig7^bHTusdTO@tp3t>mxg zM{AHKTIB<&&E5KPXT4HrF~5Qt`E+93U70*D6P04WH!w8(5hJ|`ShcKQRe9lcNSCH3 zc~T=l8BTXUa0%CZe@+^s`&!V_rfHe3ZR}8629uUp_1_XNsmSKvOmOPDH$#qP=}^Sf zJ%Pi72t<)t?Coq>mbO@%GRw(p3@Xf2Vmc*?Yajju#RJ_IT|5X-V4dZ%H{MWvT$=o- zMdk&;ju15bmhUd~34sknlhHR%Snh~=^e}hncWXe?!m8+j=%;mg@p0~)k#E7Qj>^|os%YD*H|7UjOcqKueD|z6g7|m*DmpE3lI*PR zl6C#@!z9vcLRFUZ(vXCuX3UK~XGeNJ_#sji*eV)n%s0*2g|8V@Bs7?;5@vnQOt`eY zb;^`uZQ3WR#H1k{ErI0|ppNQITv9eldZ?&mMVeeL^W;{)W6crEl%|*PXv2;<`JFl= z%)dFWj8*HPQd?gDWa06}=txJuWpum(=UyXC>(v{#;HXF(1y3)7oHDwIEJgQWTkEL< z6&NSfrCSy)3+uZAF@A9t3T*7Zc)rWltmfpKiqQ{YJu!pZ49AIU4+%ToBSZKxiI(X< z3SYL>qdTqKZV^}4gIiL3#cMWw5A^7r_r5stxgNh=Wdms!aKG?h{e>+JK)IF0+Du{! zh*c1bAwjk+8hbWT)@gTU=m-+5weVrJhzc0h4tJ^U{!;Il6CFR}&ZWzm6m23`zXy4P z{*MAnVjr`Da!ChhqeyLEMHOc0CW1saD~L2;U`*BGPDT-BWPjf=o6vk04kC?LOmy3> zZ);WdI>;+MvdA71lO#vAeJ~^F&Tlz3bi!z-4y=|J?tZxA`NsTK4U4bA0xnXf7gRwM zNT07sezrhq_JE?w$l%CJI{kauhM`iBN`v?sfhEO$d_j2^=q0!rNQ`U_%pXS*=Q_M1 zx?!d}8>fA!&k{nrGNR&u8LlOOM`+>gv}0OMK;`M5BF4#IYe6QaU;@;69oKdgKU^_> zGT=NuLwa;~$*XrhvgxwwFET!35UY_s@z>ioGe(HfSE=8&R%Yw03~shKGP@|>RBsyP z^~gvx(3>aCU!bP>bT%i3&N}dJrwN?>P5|@EP3?jPe2xY?@AEx@ z5YF!Ge{*8IxVLL&yI{3JY4-Z& z8gee=-tQ!?*rIOkxPwzuExP%gIe7O{&_w9q;w!H+1I%UHeU$3hCeF$-*bbf6QvrPy z{xLY$uId6jd+CA)yS$NH5{#z!?sPWhtz zENo^N=?`TYrZ<{Bw4Arzs&2}OcP9cLgT?AM22Fa1!jHW720lOK$Pl)k6$`-!qRN$U zlqKuteBD7b8GMG?qV1ZU(JpP)rnzZHF0L9J1#5w=o#r}$HAIi-6j@uBPW~agXmQ(| zeD&A7be})`h8U;UZ$aDo9qV1v3tu<3p*s`Se1RtebAud+4z7yHZ!h0&>HXuYEStiB z?}2huInuc>re^KFp}$+NtX{+h3z(SCn>w~G#wd)@CRLIuLpDIWyf(`LMBei&X!^b zuA=<>ragKX8Bsq?DqOu>0a=l3n`wz|mhI(p$*&!Eue&^>0A15)gpshgF4j|rr_bpA zLY`wwcVKUTf!3RwYabfJn3I(vAno&zwi}{sD3yFkY97x6j+lMB`acDY7&4+#p-KBL z+E6}X^**2N&HA>Uyu0yMVTu0t%bNw4E13=&+rJfY@kMVxU261A51iY!Y1@?Nzzu?K zh7;mi-zUeQzds&JmWh8TA@sJjzzxN5Yvd{N!cC3NlFFLb_l;Rx@#I#eTHCuw65OZ^ z-`=(Ryv}-gD@%BE#%{;&s`C-IwbX9^oo)Ud_{>630;;+cMfVjmtOackjZWk!pYahw zkjfdZ`t|Bk%0()Hlg4Sz=toXr~xw8py=6S4c@1N&9e|WDI)K+n8 z8thO}*(ow&BXcVnMPlU=82XgXybTyLkFzYJW8V$67s3Rm82RP+22ZLzCM7qjTQ z_5K9AaEK-n^PvLpsua#g^mB8VS8EU?9whIcGDE_9_d`dyVp}H>N#Wn^2vuS(B4Sf~ zsajJ4irn8XNcrf>%5Ge~>+BFQ(cM@A?&s#P$uQTNnNKBGc_MV)6JCHD+Hz_JEIS*l zdJ)+J4j-OO-8#&^HEo#Ku8P@vO<^?NRK$H9`J*a9#x)qoj=Q(mX0)DIlxWYXX9$G6Q!(jV(d#d4%b^j)LJ)*U@gU9?J}0 zY;v=cUA%bD{g)|IQ8HqgF}dUWe-`Wd9G$T*{%nG<4{9b%Cfw187mN*(kTG%~b!eSW zVm$t50_R8Mk=bIz%5_-cEH9ml82nkfTUsU466VlX)WY3r_w_-bAoHQqvvM*%P(xj` z1H%jKp9=u!%t(z|)#6IS)dzXkiUA4|z^@6vfSJh_U?{12LCHu3{)n0};4I{d*SJ2ZnFUIUk9Z<(+o839_4L~X zXf0k3ebzp;7b=fmsHnZry4`#`9Jr;$djtSct*b!s;=eZL^SZ>tuh+ChA2EFcN(#>h z( zK=>Mt(`kX32Gq%Lh`HAus4ki5xN<2)4$L9U&>95T(RejQ*wQEjiQ~^^ro4w;Hrsu~n+2Ugv}6yYdHG|frpBg=>|qz3?`?R? z7hLvh7+f&bHvIZyN4RM^sm^I;Y+bzEjaxIU(FQdmg{%C#ar}!Qb4|&#uB{<>kvVwE zdnTkUDvf5N@047$o3tme!$84xp=#nddPp&n`pWZnlo(Ml zT!=>hUa&C!K91djT=nwFbl$42B+9hGXI^xhE!E1gJTw11>Y?AU=!9$hsFEu2Yk8sT`EceIX!ZHYa~}@VFLZF-+PTfY616UB2u^D!R2^KAAVGm# z=X>$_fW~PooSCL1O!1{sWm9s0s0@1s_s|#?4pl+dkxm4I(Nnx5CGxqVJP}viwtLGn(b?y#8Tes-BgZMY&8* zm}no}&WrqV|3g~b)vKp`CJzp6_3CSWs~NPs`m}}F^(?h~YPUeakylmrsv5D*KU-Kc zyOx+cKssOl=EiQCDNP;Y&6{7QF#8b0temhus(cqDKf`Z6wo$X0JfrXJ%_~b%*ob7BD&T-S7GLsybV@8a6$YHyq!A7GMzL*u%XhZLJfMAe5x8j)PX z)pb?%@p>28siVRDYkM;F21vE6%p%>@A5~K-6cm%tI38Lu(@@{%V|b3PgcuUL=kPqe zfbq(WL$K?D@;JiPm5d$i^Vxn(geKXFQ;s1v5pb$?11KY~zL%H&P{ALf;I+)Xk|3t^ zi78Z9xct&3LA1Xl(_AQzFKAn7-9R-FAJyWSN0iz-;y}4|(y~U=D;#`KMPB+uD5J-t zGu)1Fi(^s8Ap7j5jX8a>JD%u7Z)RUg`w2E<6_5rg>Vl=8G1;NpV{ zUQL15%FP;>RzjAC`YGK5e>AT_xcrx>;Z-3 zW)F(o<$a$jnouIN@KQ8Xz7uQHf^T=)ofdKRXb?l$e0p&gb*?j+AkU@&*|nXUL8Tbo z?c5HI;^;J2{h5>7JLoe)m|cJSktXrAYPfJyt63PwTfR59Ak~0Uhx-%vEoyd&YmJD9 zPvlulYYPY;jTQ&1&g90u^M`zLv9t1%56z{z{4lFCkMl3d+AAs_gxE|3jn}BeR*c|Z zHX#`XB{3lhi`OO#cZQP>R zV!eJhnfx|O86%V{sr}V5$1|l{7BWw_$6^?Kj;z?oixbu z?whr(-EiK@x?a)qIIeHYLJ36T_^G09WV|NKGA@+(vtlw>U}>uQL(qEBMmqGMvxbdt zbrIxwkG1*cqK;Da0v7tkyn?|)oi4xcBhq!LVI84O4hk8o z-T;+M@j%|~nXA=N5q44FS$NM6pA~LjO)Sxltq?0}&6eBjv@lh%_VYBJk+g}sIAvky zC?&CTKvJsVq{p#ZS%Ny&9phJ9%fT8#*{_+#pu*yN#?Y^7+;L+vnK?B|vTqv)>9!j; zrIR@jgLurOrJxH;lAqhUlboC#|2m$30%>)2)Stuo3j6+Xr>D{U^DA(jSx@R{f5QTz zgz9x&wd1_)w^q;e8T(H?T~vwBJXzg0QuYBJxD-}c!j)@JqH8soR!t>;}%EgSw`e)jhp=zpiHPdG}s_CfK>ldjuL1n*6n|$6#-O?XtL~|Py&n@M?7jB|zc0GZ~$ogXLBsEwg8 z&`A8o4XE}=*vL%~in{m@c~Tc%l|s0 z5`dMl3ZS4wF9~>y&vb#<_FpF8=Ix86QIGZB)O<8H2J-S&y=$UCQp@&;p+3BhP51Me zZ%L=tc{!_$W*vOjP}#MbIVw)x+W6A?x|LnwFQ2}I?K|c<3WoA~XxTjAa%;5o^~mmh z&OP@K*!EkI5XW>ZASF{MyP08ciJsSZLB5R?+8an7T?Curv?wa+CGX^I&@PXqD?Dpn z&YEE(^&Y2|N52C%`f>f3j-9CNtD7K$t{&rf#v9Rgz2#N}lr@hb;Yfayu(%%-&6L<} z?aG}coHdadCk2fOH*0%;oylza%bCY)#%7%I1(oYSTa)V(*tn~wNJ~Lc{o>f{A-fek z3{5u7cWk~QJS*|)`kNVP?Y@SwPsg=AsId%MG57u7cj8Vl*FgbjinXj2JSo8$@eC>=2jYv!j z)J%IUSS%#DB?T%e`{=W+qr>rR(AM?H&IuJWbqvBBcaSRZuM&qUsghfgIbpk+{yZa3 zZ+I}rYNvQ+)P?GJu|qX(_!Fg<+f$cv7oKb{c1Pc0*ROY3t2lsJ&937$)pL78%OUme zgImIz@r>5w*4XH2=(o?W{Z)ECbDes|qA@+Ph!Nd}LtCztm3D*X$TJDH=Ouq@tRTeY ze?lu4q_(A%)mvgZaX9%2uWt6d>H%yF1-PQsv^~tSUhN)lA7}hs#}lADF_wbuZ`f9n zLtx-cj>bkao_O^mcO>?MJu2c|JN-G!nMa-q_U~G5{2gpRCwd`v{q1l488uG95mTi+ z-=Op+h3i&ja-4d-xL2_|omZx|dMmEH>_L=COPMWTId}>Mnhs=C!^*f-pZ-kd47$D0 z|8(6F;U3KI?=j!JvT=l{yz&m3Sxojhy5%J0Iqc}0+Akqbx!2cazsxvfymES_D*IM< z`)qUyUv7#AR=ub?!~d>rlofFTo2P)WnVLDWt6JQa+X`7}+eb|H(85EMc z#J78s55R=GDqlVF9C}>$GYts{a2?)uGSMj%)BAZg6Cu&KYSU-g{KUcRIjIw|exvEl zw$Br=FwZB84Xz#42Taw`&y$m^A<^!7bK~`!%cJ&$>@zWmEXa57uj0esIHMPja;_0k zj?O6NfiQ9gPk&FXEg?$#6HJ`CAUxYC|3uJw;!5YdkK_vC)lY2)O@%|7G=# zAj6JW6#_u&2|oO$J2U%bFct@UZV8>}$LhlE)zLwQH0z&p0D9Pw^ZU=KBgm%PY^zjSjX^X4w6 z{?5(J%eeGw3@$ufGhbRTBXX&3k zuC16tz4S@VTgb(BgM_I%C~#g)1de5@f~L}+=ITL@Y3zN(j9EU;e{O9v(+Q>G6P4mV z@N;xb*WDY*G@I*t7gGeQ-aSaq%u*pvD5RE^9lfu(&$W%0U+CD&E&z zb4b|TwV0->zvj%k$Nod$K-{_4q(*dlaVX|Rr_)aTRME(Qf92XUH;cc|>B!YDRGX`n zO~^o-qlO2%Z5IJ)+`{8@PYDdh-vg4?^~Kkgw*MI}+#cA3aJ_YqMoD^}@TvYzx~oSK zi8(EH(sfreeMDStmbj(j#KfI~2}}?EMYmWKe;M>8sPCX$Gv7gLiBm1sdkLxDq`Q`J zs76w7$beN$E<1UENhYP!nKbg!!=DCiFSlzfW4Gy1yClv?k~~u?hS#2^E2uDHXHEFg ztLpJ5>)D^cR7Mk@(6WpUU&*H+U2rEsqOw$-^fk?d)Sc*!;v@~Z9JS15+F282($os$ zAWgdYvrl7ih+y;1%IT-DMV|7i$(@y1;(PF$QzMPKEYys^pG70n<7Nwy8*|IG)6Pc4 zX!p%4yr`xm(527+Ff?^~Zv{VLnDAAxo3VWPvs_iWF7Q;sh|WI@%{FmEi>PHfZVM>! zDeuBPr0P#0=+3D2S>DZ;4fttVQ(#czDEiMKmCtG0?yKIE`_21PVDEA_=LQefM??Oc zT(A9-CdbyR!R4l?LHlX?!9LHgAZ>lpZ1Bc3O=6Z;5R?6F&=$TBBn%{mlac&1kY?^Uv=Q>O;v5}W(RW7@Nw@69;F%Cr7W@ zD5s)&Ov2{~xFF-s$;YUlMYQO5;sgo8PgwU=j!yAt=i z>xb8`Obs8V+!A`3T6K=dE@T)8o$E()V0S_KH7mVkZco=sm{|L zLQ%%iu~QNz2ey9*e?%m_C;C++$e<>sruOBZe&FtfiWX~R)`FpmG~V>J5BA3cI_r%P z~%f#kAn~yAh#=&gz2xy!Kw&hQNhl@bZOb!q{3u&-w2^T-kkt{vE0qjj_jX$#3 zxyYJy!cC-D-Htq&X5Tg2M&0zb91D}lTH9&?4XA)zoIDIX zp!eS>T?zmlfE8cstnV`o;1wQ*KQ{UM>YJ+?oji%UJa;?RoswGPAAPZ2RqA+s?^1r^ z_p3UUKbhgrDM>UA=3mZ>DtQ#*EG!=~xg}oHc`j zPo0~7_#}Dn%C0i{0Auab&RH~%;zgl2?JRzPghl{`6V!0}SL0hs(Bd#AD16kZ6%3}b z_y~M^Z`R(>w~oGxOhg&rl3!I}`V-bi9%=He^Gv8`wB33BRBqdr;{YO)Vi@(~ zlK+UfZw3|qR;CMHh@bXFr`)gjTjknsDmn-Wxq`M4tMAlLo%aTDXAV7HRchvmHq@GI z&Qrft=8!>kwoePZZq5!e8gkLDo|X`_?_8k&8KxY}a6J07MHg>=K_+_p9be7ZfBwEai#)-i8 z%=Y}EM3LGCLVapw@*aulUnM$s`j*v-t(+@Be%*IlauVaaEj}Hc zk2d^z#L+okzwz?mE!C$*(%^_C19#tcQZVFOUuU4keaB0i`xTvQJNtUOEv}Qtwg#Vq zwJ1u>iE~ZD;RdpaBNB2-GMC&r5BufK!C-0C9nZ#gLs~R<^3YF69sDb-}IY1OIC1!AT3C} zb@?d?l~ZYxzP~doemY8|V*&@=YrR)rCNd)x6BMi$w!U3SQJBLDzm9z+%f&O|+U|5H z0g`JQLD#}x#itc2PnVSWC^rzv-(6*R@#Gzl9C}65rZFhx7a%6Cq0_cFFU$X$W0kAT zk$Gf&!84{QSnevwvUu~tpP9qHCIz$P7JJnyPZ-g$){n&BmPNRv4dRhEO*frbewUO( z!&!8}mV&;So9#wOfA53}ob4~J?0tyK!oY>|+~#BdVW?I7VObDk(Almw=MW(FAl+{I zNQdtgrzfhwYI>m-X?2{)PfPC;;=DUUoZ*(4l-Kz}v~YaQrO5H){5z zDFjqrqX`|h;T&boc#X+5!<;y!U&h1CE~{HMko0;~4=%UvojNqf#g>JU3N)6NYZuW0 zT+UA*h$(H_N=L6lZLi&Zd!mhJrM>6r`*k+TBXd(~4wv$nRwNFsbZ@>vNY3@8b+ls* zGTDQztq_C{h;aGsZGH54|C)yA^CZH}udAFjFSnPauGQUB%(!+HTe%Irs;n_B)L8#fHmx3Mkc;CoqCg%`rB7ZD#S6b6Q)weF8*}U#C z?b^a6srzD9uS%_ZpSDXc%MarmwECp6BjnX+OPWR7?C$q#!vdT8V#>Jlr+rBm z*^YXd%R0Y}WA&2HNK zMp|8J=zX%P%MF)+-%Ltgm|qRE_pWbfE4Wi%^SxKE%y!h2Ad#*j7|8Q!&z_J8v4DG{ z5E)lAsK^Cy;8X?X_pM<_IPTl|-r8m7_67H9i)f1rY=Z$b;=4t#V%Ep9673LkNq4S5 z-{e9h)awYFVNvVc?P8!zyKM_@Qc#1}tL@izK$1CWzeF7G!lG=_@khc*70vRfsW$+i z#}O|xrpvA2fpa|b;4nWil_#LSGR|;Y4Tmbl{-7DmiB5IvuRg;X!E1@_B#M%cKg(A` z7oT4AeM{;kG12%QSrXA(b-Ob25k9ENt>D?GF|+rNM}c z>q?4sQ;@Iac;wcPeO~Rs@mZ=?VyhMM&*p_(NV2S>Y`_YksO8L?+N$udKg&`&GJCtV zWH#0MsMB~p+BG;2k&@yX92(}aLhNL>xmZOI$*Q@I3f`xy=#K2fC^v_l-NF)z>`$Gi zC>{zk2UhTEQbjg}V&x?LbA%Z1ZY_emsxd~(!)dJnzQDhS(dy!dy9`9{;Vox@r>SJ*ad5_i!Y84^p*#;tdm`fhG!A8stSmL z=TCj;ywbU}2pnvriiGo}N5@!=LhG~U%&KZ#=zJ2h_JK9^ZEDe!5}zyMPeSc4>!J$-K7>ut;(kxqWUud=Zp^Tg^l2S!zHTmy z)o--4P65|7+RuZ1Yk%o7dPaRsBa%1LH!O?9d+t82k0Y(aX>iLjleTMCy&avz&p7g$ z@uosxMNErq+&4*KS8wR%=T%=8DZo!i0&=Z?TcmGz z-DkgWGGm(nEmgouTBO}cwe`O-@CjLxq`_&*nDBq>GcfW4$+xkVDPW8R%BcUX&IV$5 zfrdwbn9I~eV>0(O+r}M6wxuteCRaavOmqZft>;s6UtBPK@Gt>&TMVV8 z3`zeE*KU{n0YDna!}AM(l)E%U_y3R+;8Ow%Y>_~9_Tx7aCu)Y1pXGkIu<@_1_Jry< z5iVt`FDZoU~*7~W}4zJy2SRbv8IM0N{ zEd+zn>G#>bSI*md7c>Q2%CG32P%=v@v4fFdEJoGwSe$=)&iR(xs`g-wz#5Kykx;Hh zLuDh+<*w>+;y%x(>ZW8<8_Ukw@)`1v#Qk1GX zPC2rS2ZknbJ-$^|6la=X&TEgILCUyFw|%c8!euah{NSUY+%-$v#Z4qB9MZtr>$y#8 z)?kmp+fH1bsBsCXQ^OS4+1j3dV~%xCsmTj7D!98)U^9m2^{@X*ZKbD+LCX4MuBAU{ zy(L45yzU#@5>}bkv1T0S3W*Mgo5gQRy1$|WJ3fGgb6pX*J0~r>;R%MHDQox5>fD`F z947Fs$*pUshBOGT@%9<|to+T%;B0g|*?+v;Qz$hdX=x!+=)%h`t4+9_3qZ-M?#nj0EF4z<;{EzC5*05QIK1bo?tpEsTlkUUOZ0{%fQ-AN z{0h_tSR087nIdQ3P44gxZP8?dXJirbht|t9b#C{opEgk)7bL#35g$zUDquCqwi4_N z{^ifvDWp!PgsDd7Z{xcoCE`g>36;63%!WSltKVtIVuVa|HyJcVQJg{-qy-#hyLZSX zPjaM`pNn0-V!w1Dud$)1wbw#=$9SqnVsLcK*(fpmXK&25ZES6o!dANFOlBd{nAaR} zojHzW%f?ZT8yH>Fl_*XL*I&FkxJR&}qCGv9rhS;AnI#Owy=~$Oc!-stA4}0t8c1tC!z)ao_M$wa|}9>qS>Bp%W@i zOhz!?U?9=peIii%n^~dtoQ3P-|;BBiKU+-A_~9ka2<#U{#c1HDQ1^fn~eq7Q4( zzuxHj)f$|S(pn0?<)K(M6>!Sa+gI^}>Ltd&FGFWr-LP3IQbE(fKd0gc%@Qr|9JgB> zWkZ~;qHWZJr|IA`#orNX5c~StuM{O-XZf|2(;XdNdlKcjiuvA*$l&>v!O}Bt#Htkz zKO$VwrRJbNZ6Tt&)Y3E*k9xszkw4=Dbr;q*2KBlQ zS4yEi8Gc#|81|L37%eEL@9+{NrU`C1kF2gmk!{jp&mM~&%UNoo6Li&a_PiL+q+eek z&YxEqF`h!Z(O#>raDdrjd<~jxThye0b+>Jw5A;zo#;Ksj;heUhUS}*=HeRnUrhVcZ zD0T)y8~!i@Qx{VbmU%pwR?}?OC_R?ouXuQ>Oux(qZwE?@ZMw5gbGOmEBzGPzQ#pbG zJvmO+XDwU&-b|#I2m)glq@hvv+6$ZmjGZ1-_?jtt!Xa+-UZl6b*NU=vmowOURpo0PlSH|t`4#W8 zERrH$6Q0j6D`ucle2(q|tM>l7lv?T}g;zc=Cd3%X)`B3-z&X@Od9u z@_G-eB*eyS_t*b)I-F}B zr)e_1M7!D45Sk~k0V`Fgg11wX(~iz8HW1s|KkEOrS+R@lxoXh6MnZp z>HYXm1d`K)=sk)haWhtf_a;Kj{~T!1u7_GF*QdQcCG?upo<0~=F){CotaNRC;^!r2 zwR7tzyJ`ic;DLt{1JABHVkDfelSOKN*3wzv-OUT!s$s_sH>xz4%lo_+uxRd{heJQC zxeN#V)+27A0!a$C1!K*735TBZmA$2An?dgD0}JyW9M`s38hM*>4HMNWo{fb}TP$f$ z3_$GS_D&jJ+at=dR2?C$&JQIe>!a1-6R@dmOhs1RK(p2Oo!Rs&d-o99n=_fUg2WiO z<0{xWdv<%b{^=sPwi@^+pnIAqKQ|S%uyA{N_b>0zHJuwn`)l>mFG~A1hjI#3SO*i; zvV>tNqRq8B#Vb292&a{!daE&%EtAfmren_ZaVbdj=>X7L`inTK&1(?~b`NWUJlA`p z2N$;Mk5Ys}cVV)zo6Aqf@@f9aj5rhf)2f`{K&Ck2WzdTRkkeN3z&2I-y4?MBVBv)Q>zzSX=;GR1lp>o|(wim@&JZlsZ z+SHoWIcK9#rlCK!0XMF`F38WK$$0cOsdZZEx_S%?NirS`7eqhd5=#_!pmx0DzdhtFVm{h%jY!V>@AD zPDHhU+V&1$(+~g(x_~L&7a+nvH0Can8 zycX7beB!{p4xAnm{@27H1_;XlI_BnK*n^KYc5;_5u$^EkpMgHHgvi_n8O=!=XS=Qf zJCY%{f1VV!zKaqS6|i~mEXfEcM$IXQ~*l<_d7%xv{;+RF-QHC z_Fp%Xc_nKVJV`QoCfa<#{yge`L#=~Ow^K{Z<}{jokTs?2YBp7l^7@g5(KtIVx)jDQ zS}YKP4<4qaz6kHnA{8bNZ^h2n5S9n7v{{XDec;qiD*f#ZQqRVH-j@U%v5Z#Hd0Xo` z)^vT*h|#-7w9RLoGv9fuqTN>x9y*cC- zG}Yn$yffw;kv7=W-o_vmIHVUez_<9#$Mc7zM3L}&0Q7PbxfiEYPK36Bh+3P zlR1vuN!}+LFx$EI&1y!@t~!q4o*v=v@Etl}!EKX3$~m7hbn&C%}55@m$z z{?9uh21Ch{wHgyZURa4(x zaVv!v@x}5iiR3{)3d5YD!r4GW5tpK)4y4Q~&=URwZf>Fu>uz6zY2Nk~tz4z&L?Q~SLZF{?EaWn&McCNE& zuc@Dqz$&HsS2%dFHY!qN@8aG*_qrK=eLARwXFAGL-PAh8wL=dYb6mVoV3mO+s^G8p zqXNlM5=eJInNLjK>S!;p)2-6_J?jdLZj)phnHRb;bC#fL@hth@Q<)d>pj&k3!iBSi4RurCrO~B`Yurx6tu6iN zZwXK6ryhK@veLTmaVKC;+@j1t1Or!urbujm#VW=`+@81#5^+BQ&4^d%v%KjAhwHE^ zC^^*iSS~{|g_1`>W+H^X@9Upv^`0K;e2`drg>{l{-8@aBJ2tsJsy~0MqUaW^GWU2V zVhUc@XP|N1LRH5Hi+r(`+wG3-2dC4b?@rdAkyV@63D+2JZLc_tPn2TP>-RK86I{2C z`oV4A(n|y74V|BZnio^1NVTHA#QNpNV?(Mfw+#;3yIZ9)-L(MCPn-DDv%$&W-^pn3 z;e61G)k_~Q@j$<}JO!<-1^vCGXQM2hVyL&SV^1rSLdEyKlxdUZKUT=QoVIkK2dy>+<=zp0UE`x!QZGobs+@aLmEx{TSb?ui!}2HYP<*F z<6negoglszRK@0b!KSU94&GOe_N$GH6te+=AFtNaF1VBw7lmCyW1-Eq?ZdO4;}~}G zMbNr_@zSS$IE(j(uUfHKG74V1#ZlQjjG&-b=_> za0NrKx-vJ#(%F??1~2 zZ8Y6%OuH%_@7Zeqx}r!Hg9p!=G+HV6QTR}26PmZ_zCX+GM0ePH%Gmp>FqsqOGuYBHY`rpj&As7`y&1da+63!6_VDvA*ItlirA4Oghb zc_kv0NhJukePn`E`9^C&zDRvv)qIV@8_i|On=JYRl-$8JqVb8NX{;ec{gL>Om2O)u zDP*Bl@~^3#g^q)YW9lkXHLqA2`Dey>!32}`_6jHV6KYkl_gyE%-`a3G1F~nkM5L9a zW^7~`B9~osN^7 z*g=gug#27LuT13KKMd|MEtv>292e2GZ0nitY@#5^qK4vyTq4)Du4P7jh1k85$agdU zu(eC6C*NruwsW3~3rZo*LEzlBYu^=Q!U=;PemGyYF;5sCJKVnI?0yIFi27VTuXfi= z^-hB|^wavgpP3h`wp8FKuV33R6tcL5vveWfC%_OUtyL{Ln)*IZ|+nIO82EN2{!fg*XHcgLIp5gqVr-WS(g9r zOrdWtpS)<)<(*gE;vbRi!$pdu?ko|t8q~8UH*|!`^+VEObjTu$xJTbL1r$K z-F;453Bj^m&Y9cC=X<&MX0XgdyZn^>xeetHB@M?_D4n*FIh563*`#A95Gi{OXqm>%Or*V(NeTc>9u_Ez54yu-;rJ;9t`Pi+FzBspbA2#i|_o4(}m?WSp9 z$PU7GjLecuyOtVeLd6Phtvy_~+3V@j5g3B##VK>&zvx@BJfa*dk9H{7=jPkBCNH7< z3mxdHf!7A+4SfaeU>)yP9lnnxe~so>jK8{o)`#=jw6Lyls0|Y; z!O?tQc{=NcLX<-;QZuhKdM83srRr%-Sqh@n%Lsk#AKx^jFm584d|-_?XZI({-_wOp zUCrF8w8t$+2vM=I&@WGnYqnUbl;efJ=z>I8rSN-8@+R}m#K+YnN21@crQFY}Z;RbKnn(sx29Id;_JoCILz>9l}Ue;f$*0gJJ~!yLvW zR^6MX4{Y=VqJiIM$_OO-cYq3w+aKfa{D;&0?+r)YiWC)#KUo)L1+*bRv&M;&PE^?V zDX@|WTsQ#u(ZBG`I{<127@Rk^q5$V!0&p(@92J0+KT7oEI^pAg$PF8C1)x`Y@v&Yc zfaSQceLQ>n-ATC!uz3>`Yc@qqPv-v%@pmC6n&TkQB4!trVtM{ZXy+y5o%>A#jeIWl z@v*uE^jG*0@*V~f)vd2T;w2%^%(v*~WVQW#fJRp;YL$E?7#HrW-eKYXAVE8MCfr)H zf6V370I%O+`O>24+wsIHI9py_-NwXhf0p;)^}cp$>!%)P85vXx5mExH$Xp&U=e(@W zVD>tY6NWL>l?*LF;pOLa*W%g&vDk=LEuEHDOA5W>&k_x58;SEM&1k!y${OJYyt}jfs-;-cId=)g#9FFG{o;{)jO(o!=FHc`H^nRSS*tPp&grvYLa)~a9)8gq z`Iw3VbGzl`{GK$zhWWI?AfH$#Q?$eY|1@(m@$J;kR5!vJF&saMvG^P_X;l#)S0@wk z`caLBH-FV4tKbJIS8vD|1Bd4{`bS;*X02R8vVNp|im9=(ok(00^<8K~5Wc#5fkv>0 zSV%rSN^|H@9!Foc)$+Q|W7xnWDg^E~?mpi2j3tzwLDIFJ6F7fO0X*ZqM#gYqV zC_j4)St@@SV>Y0KN&94Trd-x+RTK@jNlsTQ->#<=%IZw*y}#7=y@n-{R%_X-c$hV7 zd~U}#Al|UdSlJzRqcC0H+r|+js^@5VFMT#^OCv6c6*$J zp#!mM#8Ivcq95(*=x+PlVRP* zu2)8Wk7FNo6P!j@2on;@dhuaaHM!PG8snGsw(;-zQvWOYo%%r{;P0e^n1)tpsy?2C zN5{Ra549V+JGDvD6|cT)t6aO}s7P;=|4Z<+;*8;~1RI0b6-<9JEhWP+G#XT?Y;PL6 zjpB5MwXqVqr=-o<9H{h+mS6c>VD+UgJKJRPEY-3nRRs5<*?k-`XY}0Y>do9RGJm3Z zwW%iwzHDn)>lEypJS);_lbw1P+|8pR`;rudGmmzp(u!UZf78f5qa^yqUA@iCblt26 zjfA!Yi%rCsvDv4k3fe&tI3s%y~E4<2`VVYLK!K_}#fsz9Y!> z=qD>Ngzx3BJXCON3bv&gm})<;{GBZ8#xtU&q^)~!xf zqw+^Y^G2WR!@a85(X2;|JUSxu8q{OHr5`!H=8=K-M(Znd8-!SV;!`%QI30nGv)EYt z`^QhUYBJlvz|)&G8P)9*Sie5OB6((ft<|M-bfY%t#DVzPMYZyYO47sMS&+MPx0VsT zYx8d(QJZqHF@5X;=P#O9Kk@ehMV161rc!*(%Qxq4i9^B^ZA_=LF>Q8Tc#xbmK%)0 zd>cSD>D#!e_7ptpSSqa}~3rMGCfL zDldT$)eC9sjyrlLRYicL%b|N!{WVn``(8b~z%XWB%v2jKCnH*>DDx7lz@goyF&kd3 zTA#7}Y0%}cs2b1LAg9kaq$LtjES`3sqapu_-jx;E6i&YJnqF@nOFtep3~IO=Rr_ID z63OKLl>>ChiyA$#@0mnXZ|fM7uHJkE3jti6C3(@>LuRFhD(>H z6jOPz5n5YcGhRC7$ry*-l+9c1tkX zl_)m3mI~4j%HJse=4hY1DyXY_q_$)L2byszf}X^i7-vDQvn_&d8TCdDE@PxwMyx%* zQ-4A?zP33x5qD!Tn4WI6_Okhy+@ASz@3cb))QsQ2{McEjS(zIvssgLqJL}U!;kCaV zaz6L3#{ZSVafATVCfmQcv5gU<9iU7(39*5CHwj>l%|9XDjYdfP*j) ztBbRV?=e8J07Lf!))Kx}6ZejuCLp*LzCin8tL{wF;hgks z%Z(iF;5IV0uIDR|sQOMZe@u!Mz6rw%*E31Sf1R19m7P}!m8|9*?wM4fqv>kRIzuKU zZY6h@k)b2D!kRYkHz=`E!VwL=S?2tnF?i<*Y(wO*YQT=)xva9Pax{h)WjfyW%=?M6 z=iXhSR>Tw(jT2|I5$temD+m-@qjuPG(tm$SNj8$1nYFblDT^oPJ(WM_Kp*HDmv0rPaF9dP2-2%0_S@j_1g7 z3tM|e(relqDuobHtN5y)+88PlTj#MkAXSyZS|>ASkVJLbF441r;({c!`{i=+Rq ztLu(Ss%^vcX0|LFj&f(3X=<6HoV*RomS*NeqjDxH61hU9AlKz*crjPFpLn9WLSjVpw zgoTq|s!K}7f*vs!E)-MXF9+b`RG1+Mad?K~Fre#DJHoj%RWr{V%6rjO*Lf++)T@+a zFV$NHv@w76Eo!ZmeZyPHXCgAWUBV^(h>nH8ceVBBuj_xT3EUN&xmQu`5`Oej^ovA+ zN9qCfJNKjVB`Gm^X?fR|mva+N`%##|uDRLigO*aek3Oy8h*HYg{7KVQ`X27N;@Xxb z|0$hClQz{U*%1^7=^|?(Ib)eC3(1m5WA*v|_#k(q@VJZl1-ilA3NXBN!bfkOO_leJ z8eB{l74ul+k?+2%fIyuR{47tx1{AuNZQg&(Qc&G_!vkQ;Jl;CxU+t&0Z{jMV%fG0{ zU`SN)7WF}pz40Ag3yM`hrNilizOTcY7*x-+#nR>*%5P4IB7VJ@<(HULrQwUqswxVJ zqcwKLE(V|K>%*pC-qoR^V+{U{!khm(J2*Mq=cHGRPY|Tqli0{h+bd-b8>L|nvbWho zRei5J8-y9}?J%}K=BH5-pZ|~9AiL(&;{zeshY4y4Z4PrSI$`nsWhv(GcFQ3E{@v7R z>C1j!oBqb7clIiX1RSl$$c)63p69075Psn2oY{>%Vn#ogH=BWUd+!{N|KdME2z_~anMNHf|?d@HCs@Bdm z(uPK-o?ZGxQ+p{h@aFuS(NO4omK7e;vqbZ=a*gEOeFh;ez8)mCoQ%hu(Jwk9+U0oR z`irFRc3GL{Cz~?elilzkHfK){2WR)zla6zb;i5>i6;l5c>e<|xfKo1qK2Z@8bF`5$ zTfM#fu*kuk?(wPZ`g@S7ceORgozHCvsn+}m)3^ckV5+iBciA$lf?~B9i2^r3OrW#a zt=yDSF)(+go?xijPOYW9;bzA66&=ZSR0V#k#8@iyGJ_T% z`fd=z4icTFv7L@V)f?z)^`~S}773pr9|c6m#oR1uSM7WSFz^=<$RWFh&pR?4NK|h6 zg?AM^ED<^Rb6*-IcRH|ZT+wc|JT&+1kVoQU!#Mp_6YZ)h$A{=-hk1Ob!BT~bnF)H* z33YnIlrYi|H%Qe0|bTCbx(fJ4_|uQvUQjp zFhg+HUPNg#SaS{ZD`#!fY`O3akhf(X3l+w=F*@2WSs`d2VD{geK+_#eICfIf){SOt z4};6?ApvT)+>$b4Ok8?i4}3|NGOYsQ-Gi`fxx@bBl=AOaO9~*+fSH9up zuMt;WWVoTp!rG8GVHm4>^)*O&goJO>RuLbqIGs435_oeM`cQCxH92W1O=L}h}E9t5<-=7r!fv@0P0;f3!&sc7Z>wh{VZ z*^gfLLSE94U>tFe(&UMuGT@#($4UC+vDqzY)M4Bc>9;_etl!5G4&>`J!|Ey_htt(c z(eHYMv$yM>HpUNy(#q=7K2x8!lBEq!>LZ`l)kVbdug$wh-+`1`I=S6-je9SeSc8+i zV}Bwi?6R+W`RDBAmLdh3Pgv{MFNso)ZI6PBV1l7IZtI9j;A`ieTk7NE!iP7r^pB2R zT|wH&Ff&$^8$uJ1)_omhjy9okSQl4K^K(q9X}4p`wVmWCSIckFG=W$uJ#BvW?9Gfh zHFBk#_js?|>O2HBfxEJ^k~1ro`0(Hvq(X9{@0<_J@7u&wDQ(*a0BQ7+bMde>=VS{b_%|@n-<< zs4Q2u7#|GRY*aDcg@ar^W>Q;AzHn+*1+6Vo|L`Wi}~vXg*hvob(?S5E@k zFOLCk&%o?J{upTIw6c=irw@p*Y*O0SB+ngub$kE04!|cH@S8dB{YQd&GiiM5N#0Wl z^Y<1vB$RscUjC+u0A74AE#4=sJ=WNDb=($o08rY#dSw&f{+az{bhI+iY5F1$ko!BX z0_2`Wu1MdCR=)jd$CHBCO{?cniN96;;N%{F9S_jZfn@_3cw3eK7%Ey9ZEphuIgcgx zNm~3Lbp;Tq`OSIXOyElZ#QfhW`WV|Swic4NfUleU7=XMkvU%ec%K@GTUt#W9c7ajE}&!{GRj zL+yd=B|{`aHRbrJ^V~0R*~3TctKH!zGrwfZtAB?{7!!TxW^}Ub^wO@u&-EFlkTV96 zDQ^X#{$EQ4*{SA}21C)&W=mNbPBIUA0*cjpk>fR=QUb~V6Fy015ZE7C-`+fOdB{NS zl3lZ>Sok&57bDz6?mDxnu^8su+EwWVT2++M#>=?E?}xR`Pm!GZVK@BVcvt!Iy~9)M z>ElbfZevXj=R9AA^&j?(^ofi7i)%UTCJ_hDS7Gf5p4~kcH`X4$+h9^UZ~Dnjr7gEY z|C-M{S{J05kxBmS$X$RUD(kXnC+f%4_mAlqON4qV=$sn8%LZ{_@brF(Fsa&$I~y|#js}yU9Ll^snVR%vtPI~$2_;6 zDY)ypX44oNO!zo}b#7eS>lL-vi5-)m-aDw}Nq~sq0zbT~>s`2GC1&t=r-;+ ze*5wS>*|y}1=^TToCU;qh0^i~H2>?&C_HTW^^wR7T1}*8M5(mY!gls6P3QFf);!5} z=PLZ9KWp1ey=>-Xf}`d#a^hzheKa60s2!c?TbI@Laz zdn)ta2tFx22QkJ7Rg&5_QxL4N{ZaeHM7kTzNW{vK3 zE&9hcL>r*bR7+Y)jgpn(ITlQr_aL)rRbpOFc+8GE%%R9LPluEyfaX|$H!F{N%a$?AF_eS{; zy~tOMKWE2@<+P64V8`~zD!ai(j5{nSTn8N75)d*}4A%|OEp@^Z?s42o5;P7^1-oW+ zJ@~e3*G+MaMZJH(2VJ!03~dnL2vdqyzFeETZt&!NXz~JOULg&i8x%`!q%C-Qep}(kX>XN$S}QA7?nHr$ zl=~wA#c&yEldpY`{&OS6lt*YSV;xKjS;52a{H_?fo2`=9N{e+2i8Ojr? zyZL7}K*vhkkG_JS>cJK0&HV;k04vOFfW$UH?83dwLWzPT^6OOdOzZ>s zf2{c}Q5&GgXuheevB?;L(DvY@+46X>V9{zOd@i5QDZFZIG8xES!|0=URc27qER-(j zh4L8E%9u{WR8x{`97C|!zX2lDZGgVcdjEH@dH|0F6=ZLKxEkZugHt-dyohT!vKQF2A4fXmlEzMbQ-2F1_I{Uh-k1wFw15hJ5Ymy7Osbv3aL=~x~W&SqBzYG zjGF(f+_HjY1}RonPtpBM{!#syL?z;XyxP%kji; z`eoTMzJD48=$|29ftIe>r?Sa&-(d_s;!r5m@1PapSLc#F2V2;m%I;r2Kt!RLx(k8m z8ZQpm;nNA8IDlvE$@gPnQG^cn#lR2@7{Timul_~8ik>7*7K2yG`XA&;$h|0&=E&Lk z+d=hQqY%EL`)UXZ`pxO4ds;6LxPgcotC%bTowAnNXI}7M&{VM&0c-4$xV;&krKhYV zOm3f(*bmKAIrL-6T6(R=d`;NopZEWzqkzyavZ}g|5PbaUpED0G6}(hTzPN9_ zK>7HN+t>dDdZ0FaVfZ!>p?}wtzp1M1c)zLJaJfNc*Nf7e-K!SLb?X}-jlV1Zbc9*o zl*l>0cKqti)U_U!aJ87Vo{PW*onCwZ>h8bM z!sez+RcRBX+ru6bF+Wd-zzt+wQ+DEz*=&bLXdku)S zCe3Wt!UiY_8yGB{;wTP$qK?cjr8~P|Iq3ypNA>QxJK$=8v+yN#gn#8j6L;jy&G5?g z9xj+JEJB;R{}2%4OTdJkt$6}Zu1+uCeq9dWBnlk4!dh}^HxI1nR00l~Z+wX2gICiH zgk^$fePmx;4dBzz%W`cX56tj!3FD4DPyP+mci?4D&#+=`fV{%OmxV1Gpl_s+sZp~k zlUIJgb6xZMxpo^8tj$?L>qr&h`SdInwl5#sAP&4!Ct?YL?t9`avoEu}58h@t`g*8U zJow&T;C)S%hQDp|WYQtfdO&}ji<{P*n_I##Svpx}%kOb4{S|&WximgA3kgAmeu41f zw}o?YIL3+~!e?$Ng~>YAEFfiuFX3_QQF)9nM0>B3T9)^n3s2tw^`X}!cQkNr+B0!D0(8K7 z+tLPTmdrdJ^WXLv{3ICpb5Zy#TASQ0{4A1*&KE@N2Q+@H_`8$?gjlY`#aRJ(?s&q+ G;Qs(S5 literal 0 HcmV?d00001 diff --git a/public/profile/1776517855.png b/public/profile/1776517855.png new file mode 100644 index 0000000000000000000000000000000000000000..d789e8313fb1698f5ed4822d711e8b04555363a5 GIT binary patch literal 249498 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�i@jAG3woSp;;~KJ6)Od!N8`PnR{c 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

ySBldj_nEl_`i+u?_vV=f=WXwKlF~ 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 PkO5TERIHJ=`t*MQyu%$z literal 0 HcmV?d00001 diff --git a/public/profile/1778066892.jpg b/public/profile/1778066892.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0710bbb85cd648e2b96ad893c91da653fb21d41a GIT binary patch literal 388632 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

F#TWD`=O|mFUaV%y@ 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

YSYCfv=&!(;uz5k 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≪sr-ghysIIdN7J8e-W+S<_krqd` z)Dk_RH>fg@%2%dk0N|cKO4G)>s=;^R-E%^TtuHOEqFaF+R&mzxZH0rXUkSi2TnRQb6Apk1*TwEh1 z?$mmY6_d5rh7G5Iw7-cuh1R#D>pFh1sr|CMa@>$-sn$HnNN#sR=Ci3D?yCmGX zZ@;*z>iE~-rT+kh^}SQZR$)A(T35xr z4)F#hJ5IixW zX?h)|x2Hp5Zl2|))zeG+9-=G(2oV>`mC;q?GIT4nl|l|vJO-SXmfE};j7--$we7jM zj@nQRlcvJzNQ^rdeiau024p0K%O7Uez8zb5T2|J64-G?Ew(^;7qKa0OECk`+Xj&FY zlWA1KupAP=t8E^0ZEdF9nS4Ru%LpP_6@Rq!=^KbPw(mYNNoG-p#&@zQJ8~B*aEBt; z0E)kxtb#u%3KS&^BrFeG_60|LE!UGS!h4}xrbH{eUnHu_tuae1xW zpEfxygmW}$CUz@?WStxXy9#nw3x$`%^Jq7BvqKHXi=`G(2rh5zE+hL+qc*{vk;qkm zcSIY%c;YrO<7q`0{d3*-zF+W8OZPk`{{T?cyfLjA?d8<8txCbw!YO-MQOO0?Od_#y zj!qXWGBN<&)%-T_j+^4GW@{Z|>~@gZLbs9J%_NY$$R;*O!3T3Qd8!l)xCG#xsw=$k zKf;#Qv}=8DUhuPC$>M99gtEAmqmJH3MUc%DQK=2*9F_%Cg&TH(j2oUG&@X-&&80)B zNj<%mmv<%OUM;587Kq6#UucU8vpJF#U4~AvqK0jOYpPYfwJAcIw7dTRkxp0jJugPK z_-&(`y*fx|)9r5KO$PSr&emNytl)`$&``U_<_0YSf*t#kIGB)*MXEHE~Gp&ChHCIRLYXbZCd#AoZQ$KyW|Nv3F5+I^gQ4U=2Ew%Q%Fq*1BFk;Ya;ft_MkxRI4) z-=CWdN!&Ow?xj|#!>5^Xij41LO2S*`111KdK zishEMORp1rT9-&O&*B-pO`_aD5H_m|nJsro_P8%h~L1Cx1n;w~aXkm+1w2oN+0JUNx z4CIj%N6eSV1cmvCRcr?>xaTeK{=KMZGkvp6@gl9*x!){|WssueHeF6)SecK^r!HL% zeH*IiG}uqtLUB~o9&a` zh&BBd-!_lACuXuUvpiP2N|^HSwoHH_Wn#W-bMYfvlf)ll@eZe}TFhr?x9(;9{|^y_!q>Z;qC3tr{R5CYa6RiHsanp+h>_AWif35SA=5W!Zfp6Dvie( z@5g{q#bG(29bT5x?{+ns_H(?pKCbZok?`9>@Z3H&@xO)R{@sH{u)7VYG}kS21I27D z+(h>Qn}G1Bh=g2?*w_?V@E49@)civ>m*DM2d;5#Wns{{EE17LA+TJ(}A~lnGFaUY1 zSSv{V!m~2hfa%{8^-V@SPsP6xEUn7iGDIBR%`97lgP2x7^m~aHC*%@{!E(kfD&B+f zU&AYZu1n$n00P@yORC)O)3l|!V7Bu+5a?~(#Iv9U$Cit=RO5Ldy?8Y;yhPiKuHF0S zbgJ=spJyE}z`C8(_P#aLt~9+y9Xsr6KBKMMMGM6y8T8pFP9==UT}zcS80IChyc6@U zj(#2Ke+RDgi9Q?rLs;#6UazOz*m#=mac4SD8?0tevm+v)4W058AQX7rd3E{PZ;k#U z(60sOhb≻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≺KjKG4D{Qc;*aS1adbfM{e~b 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 z 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 z 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%0DVzW5Ri3m1d#ssE={ zIXO8z9SZ+!ElMe$htHggK^8>Y4B-QJ=q-9YURq4=d&hl-!=fkaGyl{F<;hMy!aMdf zclfe+JX&foZcTp0@D#)lxi)f0gV0RGfW;eX1N?D z{pg*?(}JUqJ`$P^g~dfvSXh8rvu5FQj?=Txy@07xr~Ci6c`O#^y?B~Pp^8@pU-A^- z2_Dfu{oM2Zjy^v>-~V!*c=G%2zb`h~bdw*|wWb95GN33IhtEfpo+v?~qWnJl?6aS2 z|C(fWBwe0lBNfmhDy&L+-iw=Cu#mf&g%Xa%P#KG%iep<%p6Yl4E24&JwS-WCwXv6%*M*M&#Nctl7dkOo$lyap^JL)LkN1J>}uco|Zeji(~sHyo! zSje=+gtW1W<59!06V$fR_OQs3a5d!#pVVE+v66PQLu5$0)K}A1UfNU7_6S6VjFaRw zP|?>DwQRG<6B&ydn-EK9Ix;QRnfLwo-$#fiWwN%!5Q>v3Yt`WT61vWU*QFqL)UkyN z03NSvcrcV+t|NTC1=pAAFi!$XDL-HIic+m%NoOJq>a_&rw4^e~EiOgpe*J;M67J-K zfN79L!R4u-d|}rxOrW6&jpHX_(Kp|se*9#lXUsuxX%&i^6X=w*QQne9VO zYn10|MvumoBfrMwbW|?=W)vpq)xpY`e2Y}Z#f{mZX$Dxbxfq-T8o6;3738H``Zx~^o|t3LY@PkcKT$*lbg z&Lp6YPW_lMV<7Wb=B+rm;-D&}{4|-@_!VCc9XXe$fI;q@P3i|<)kytX`FcbtC9zg$ zqm_zbWJua7U=VW59_Af#k~{j83v?c^DU2@N;b|IfL&K#rt|`lsIE^|MEy0rS#$xf< ziO4Qqf*>8ca7!G~WD3!A5;>U+@_2eEDBv^c1QU^lI2`gWoj4K8#*7BIV>h`YwrSWs zaXe^Dvvg3PEd=`XMMdv^NGX&0lg54p3#L42@ef!v{zJ~nAt@$0b>&n*L>m<1@~+v|KHHm^60`6U`sUsXlp_5lh)5qO+Hp+Eo;dV5lrVQSDOOK>Hu zm?p+XDdjH$VG_eDP>Msx3B9zw7F+MW8v^vqCEo{UNK$q%v*uvllht?XJi`B3KFnLPQ*x1M_Jcuz21%mL>S$s<4E5~JI zU*o&Hyc{Q;d?I$|eVF`5FbVFcaw1V4#YYhhN8q|1ci>4sUYM6pPuxa+PL5BTc;~+5 zz|HW-qmRPon{NiCe!l%HHbhgAXssc;0JA_$zjD(w*$>l~p_Ibn#f$Ov*I%#5{vQv! ztfxs?NJny!$;pSElZR|H7b(V5LWx8q2k~etlB7P!mxvZHJs-*3R-`yK>AV7Dh_oNh zhtN!Zflre;xe&zL|ooQ)uJ7&(m#$D+LpbX z2#-XhtV1uU7qsT9c-i`r*s3 zAcqg7xruk?o`X~(?jO0QGbtE`;nyV7*ln8>?FQ4&Smi@0#fh#Ui&H7ZiKbA{xik6> z+!XCE&vh}LJA@Z*zZWmudNS(g6-XOBt^D@Kd0d(0B+I3|92(jTJ>ew#ZE*26E?tUuUwj!3J!1UC zOa9F4(8CVKdFP*lp+g6wpfI1@GAbSdJkn=`W0rt84Wg(5bRst8sl9&o5>}tfg%c+CZbJI;XK~4ZVEOspmI2>ym9&Ga498~{Xw!A;1j-mn3 ze!9n9K`R3AG-2|X(Fnjb+n`J;Lz8)yPaPPoWj&1*!#3ktPBNkGkbJkTyikb?R?L^U zpgm2f#M=S3#fJ`Ib<{9Z;Z7e!Lk*V4DVylhfdpfVL`N}?swq8Pw{ z49sAF$@!(5&N+YYzW2Pj^Ckc@obYC*&)mA5tE;Q4tGc?+yTd#AJ?o#s)8G0h>$|(W^ugARCNv~@JDHZal=6+4~il@ z`!&i@#d1tO_biXyIVM$_V?Zv=F^Y~MIp6&1-(hOYHcateaF7D2KT#Xh&zTMla)Ny5 zsemyQFgVD^tXHPlCOGpja}?4XZEF6@X_S*nWu~S6Ebf2)!I#k3y$g#L%tM8Ot(Qc; z{Wo95(?580rk*0_UP`Z)hCv2Q>70Tq8G`yjw_h{kLM&7qz|3G~j58kw8F3kV9q&nr z2-gTboeCFojSFDMx((R)>^jze@z2P}Fs{4)8ocdoZ^nBbdMEC?{~p|O^UHA8owwos z`|iOTY4rc)zxYY~%+LHZ9(?faSh3>l7e{)S8VTw1-iK2KGlS#GQCgmjUa))SnP>1j zzwL{u~8XHd>YNyaKT|${wsB(eg0>uT2_d|c%vb@YwsJdmSxV3XwtAHatu8oTn<&hbyOE zhbN5!#Y+%>m6x)=3j3>)4uwjWP~+)Jm2ImXV1Q$ciqAOc8K8|Yz z$Laa^|Nh@&*REZtP!DKBs*S1ErPiVhy#8+kU1uGq?hioQrqhy8{>nEo@|Qb(fTxtZ z)~`cr`!>!?bj3(aBIrJwS)h)2P>YbuhVg-*0!Y+MM~2J9CDXV@k;Ojhpb)KYbIR z$69rUoJT@3=2JY@(Vs*)8V@bJ!*v>jgY{HL6Ptsx%!J}vxV~1!c~@Mp_7mSaiV5!eXPWAv{z{A)NI! z!K3{echNHF!(*eEH#&w1-lc<{O?#?=p|pa3`pQ?)peH}8=^>LcsCwD$!V53JHP>8? zYp=ZqS6+DquDa?>iq;)1e{+9+N^ zf4Zz!mdy@TZYI1XRi-S0^=NiIzIEx4{uTb5vLsxr2+dOwM#2ktyUrWbdO%jw&Ym($GH1LqHFBf3Gn_I zy!R~#s+iCad!GW{0h%X<-W&B!9%u(2GXqQEVF-Mu!05QW$^60d&V>wUK|W`#94WnU zs5ZUtO;10D@y*X;wBo|ix^Fj8^*~DetyU8)o*=Rp82dEp4d)W5Z9xm$W_qgGpkdBX zO+7u|NmO_jzkqdWJnA2R;wcaTGQIUK{cAvB{2Cs{Je~~7py$L^FpB{{GZDrQ_{_>+ zU3%R8nG~OHlACm+93{@ee41I%HId+ufTv*@!+pnR$ zcapn*Aa$ObD~c3%SKfOrbVni1pm7gZf2}o1aK5SGmjjOM^SYwfS_Q%VKc$7wRdv1LeFItFsJ)^F1iaL!!{L-dD zN>Q7YU;gD^#vlIS9|oSP&ar|~p4K4mARQP$lLn$iWo2mv3Jc1KiIG$+=z)GXqwwTA z=e6j8t0XWgqJqi`%u`&TIQ2m&Q(WZ&#Y<4y$%`UR$$~)X5|oBBDD2Nux`dLp*5v-#cqI3^tF>!vtt6R;J>uYAXX0G!i=YrDfSak(IzxVFg0ox3m> z{}(pVOwv!U&oeyQ-oiVbl#}Er9L9+=F7lT;O4Zk-s=hp5g=Q8Ot2}5e;3gOJvh&t( zF{dgHU}iY)q6=XZ0(OlyPX`9;L)<90VP;rN0hD44mG#BEOX>Y;ms#gA`E;`x`taTp zZ-N$gsAdMEFn6n)0%(B>LZa_WbXDjf$he!4-c}nGm!O__eE;j;z?3|9%$=uJuj4vi zSx7nN-0ez%Xj}?q%%v1HCMm{Ged<&A*`NJc=)O|Q=~#@S;uAP}2cAc0gIx53$S}Yi zxWYOOeTAMzC2OI^(;Y#z)1We<;!>K*u|}vcUi}e3_yxjoq+!`c?L=RHsIn4D8V?zA zjH;{lCo)uD0`c)^!b;XaC7Y(QZz9c`s1yW-RnB28K#SfUuN1ghlUyAOnUU;0@x&8& z_~D1~E5Gt9kfGLkm7b8ysvm(ieRSBeFduXydQUl~oJ|WtFMGehu`god$MxkK zEaU?^1yWlMhvfySHB^kGY~6~+E}n!icjhw(B5n@Qa7;VJQm1+X-h?9!VcobP=E57ECy<2u6rf7EvB^GAWzl<^g$dnM=Y?0N#h3f{}E8sOaU zs%tf2CB4xRu7M7ZaZ9<#XlWFe3`iCfpAC{l<*8hTdgsoa_`wf;fKPt%lX%mc-W2`< zqfR3y`O}6}dP3_?p_Z50DlNl)_uY5HY?h)>rQ-k@z1ob|YbiIYZEi?KN8tG!GY3`UJq9|vw_(={&v8@L zq-V`G^pFc~4$M2`&hxh1AZH~vE~X-ZqnB=lgClqvb3u}U8#3h?9P?C$-ec6;d8dgj z8`m?Z1$ss>#vlSn2dF;=c+J?M_03op94EJLs=+FuW{AJo7n>init@8CW`i~b0>^$* z_Af`EHOCwz4Z`W`bb=k5He&}3gz@gEl5lvMmEHhlFniGhg6>Z3fNW?%Xi;i`OHdtm zx0>Yn%a&m2%Ciq>Fg$MzuYLGESa9wdOrpTxqD4p+EeQYn+R{}k52&w&wrtHBGJbNi9CDKYI+;huFcIc&N+&POE&ph&d z=%qc?nJaKPH$azOdMWfmpT@1X_H{%lWhiB-yb8yomx?q8TefTo$M5&vdoKj{-E}YS zx$|z^ch9}J|K9s>pWyC$a3A5GJMP5&ci)G*Zo3P2uDuht-+m|7uDt_m@4N@M-FH9k z`>{9S7eD$@eEt(3#pgc$5q$1rAI7hLrJ$S_{UIE2#z4g{me!~qn;I*%PExz!DFNC$H z^`rG^rWFZDR<-_QD3veRy?b}Sao%}{{yAvjIhK%3j0bPI;0aTQr-(@<4V!#VkJcwi zFtjwiL5F}F8~vR%XoNu>ns2ZC|T7}tN_>X?>plX16M3fibYtK17r?x80~;MlydY3Q(Sp*{+>GJt_<1>k-qgc^$?>d%;2g7W&In=i@$&oSgI%s6HS z;iL9d7}`8`4;d%s>m~KlrTQgRo%@vvO5!8`@O3ozj6;)B;r*dPv)&|g2%JX z^iN?;-=DVi*Ech)y6^%BKgE^dzS4rbL#512!3-#sbF88RTreIUW*j5yXT-pvaS^Ay z*Q;W1sE&?y?KJFDR4|Wy`@1uE=0ZeXjy#?!uL@+e<>APvOBv}+VKal~U}|bAjB$8) z81k6ZPI;R)Zo=~$p2u^~J`dZh6|&CQmr z7$Vepmn#_L9MzdWz~=cU-N4#|#f*tz~0Y=2=rc5ZutCp*t$!}HH#{ko^IiE^=# z^Zx>6MJGjq=Xi{)s~yGlXOnvIRGUhHHr?nwT7PENeUqMHxh55=u4G!90Lg5x$#D-l z^3G|2np4xk7^Sr;9F4k9D}eJf$QC?jCc=7R1~o{|IA|=307m0wW^gprW)5ks1~UU7 z0Gy}hG-@oKa8IzsZ-H= za#DlBg_K(I@DfF58f_W%)Pi28nq#wqbv%-RLCARLV45C!sWZ!vm3p7N7b-A)y##P@ zeB=Jc?oEbW0fxFj$;QW67}Ssy?E}2 zkD^vhp`B-&o~fBZ6T;~}fE2Ut#M;3Md$k=WH0ADA3z;WMA(toK(BF}(EMy$yOFQD> z1q(2`WDyrc^&mC&Wev}thn${2%!f<~i9ic0grrZDDy>b2nL$cJUV%b03xZeDBhl5E z&5TA}i?QG`F|?TI&NUIoToB5R*hNw`6sjTKF9t(UL zV9bDdR1hQFI0=SxV1)G)AE6+O253X^VJfu|-uE48IMQo(^kFB^J|wybA?(pR(iaZ1 ztUui!SJ`lnjw206IOcv_M-%V%pW|r4Zhr;FXn+(S=E5A-ykr?h1-w6=XND1KxdCtR zG(QkUOJ^}Q+bDhvR%Cvb$v&n3dAupBc1fXnt=U|i*$9w_B02vK)A>~1% zs(Lx=Ij$3}BjXw|)&*EX!{&LF;mK$4G&Co#6LaKo${G%ixIsKl5OM(ZkyF{`E<@(K zpt$hmMw4s~1^Xx%vKowX>!`yM(%9iWJ$wQqUg5ODvl%faY1k+fq>~t+(5$N;&5S*F zKY56CClG>dtO=`{w6)>~+5eo#}q$W~enq)$G+%6*`FfM%OJ(jOo z4GOTfo(!o3q_0VcjxAgOcn43s>LXHyC<*~~flE*HZbtEq@UE?c3iZuY0K!*w-qp=YrychNaDU3Gn<8-gsp_0e~ zbP!Hlc=VW?Lx%=IP{1KC3|XgunTM1_0McV-Fe||Wt_Q3a;ztsy?vDz+{tMyh#RDDv zag`kms00y!V^F!;97$N#RlB1F;rJ22Bc<{sD6|BgkRm|^4mINSJloBh8QOV)oa?K_ zylHc2xCBkcA-XA4W;QdgrR%en`E*=BPZRUjizK%a;vmgAFURaFJF#N zeBu+3tg_jO`4m8tCt1>8qR}Nu@VJ9PqC6KyJ;yN{K?Lc(yFdmrQxX}CQ-?ZJV^l^? zo~f;c`mDo`@)5QNTqQX@RT%jXup^l2u^$i;#(nM(egh!`QbIy}Dc7dw+H^c8fVGfW z9z1qV6XQf98Ud&)?!Azz4cBL#W8-3l9%Ct&Iim(RAJ!*02I)LzhEL9Zj5;K@kUYqj z3wiy;#y-TmP{1#xxj!Uo3nR`!86sZEL_*vho`T4@v+A7rbVoI3$T@mKG?`C+`w=+K zfah*J<9&|vR8*WH%2z;a6b=Eix@idk1*#x~jJ_|m5ma~-?7XLSyrZe(g8#-+tv+@r7UhPx#&c^V9g^|NR;K*I)fC{_C%Q9)I#* zzktT%RDV+pjgAs`0$LH|Tu=#x)Vzbd2?-IXbj>Jw1tm^nU|i$XCP6~ShBWX+pe;xq zv750z+exssNNe;+)bCKej`dGG*{#cZbLDgK#TSRShNXz41Vyvr3YC^pm8T?nr971u z4?sT2*p@spGdM0b^d2eOoP0C0kT0Bpzf2c$Nq~^=Ima0nY(}M~=1P;P$hd&T!!7{Y z05A*PbUqVy^YdQ$OAE_3vvD0w`o(Zb@d$4jD$b=cLw`tfU?(H&P&=#NBMsH2pt4se zD3Ec=xJEdyk_|zHULB{HGYb@qo6!JJ%jaC&0XSyWn+<9sFte~$WUM83k{`*4(vm@K zEX@pKV`DHgDF6KP&xd~HaP{idLUH1Na^B`Kcxv3tBnh&1lV-CBz##`Z%nT0QF-c~? zM?WGXZ`i0axvK^8f@223V2KCO0mir^P)(ut=^sjNw6|!i*k2c(t-2JJ{%RG88`$s zvYfRUXPQ+QcSOy6els_GgSiwM;sAlIt(z@=sZA&o4aA@G^rFK}zqtfS;*hnPh#q>E zUoY}~-L#;iug3)sZ|GcDw`SwCnfz2d6P+jP6}i$=iMdW- z4Ir6H{uW3WFL-1rkYNYso(x3^W(G4t4?ozSk?)!tf##=#GM)2uMDYrb2g~}}R4Bi! zTZY0VP+Dyi9v%u9m194+Fj|ec2Sgb1`a{J9F!bYR7V#l~XzedMSe)!)`(8hN{g(8A zyiO_43j6D-T>Lf8o36)Hg*p?9Y zxpF0b?bm({x7>1zicctL&44F@Mtx9F=FAL*cW6_O=-yg-L`J)y{*v6gBmuZSGM+@` zGEQulaDyZR>L?dv3hjFb9qJBnZsGWC9Fj3&DLG$7gKgOrUM$~Y^=#3B3C4wwhDaPqsD(J)V{+x$~cQzz-3%xtp@cTPhU{018iRqKwK^e zlL1Z6Z!_mfKoL%5jCwHV2|!x0F!!3Gaw|Bxf?0x`A(+O@qtk*8^`uS@JjW`2 zBt^YuG3;rfq-)1IPrJC@|C#$#v5?a<(J}$o36vT*Ia?C@4N+< z-h4f7y!#GZdDHcHqLNG7xnDA+=eg5J5>XyewPk;+jp zkI?Hf;84Hhh4h8$%JUXfc^W4=^(%#1H%cp1nd+&(QVz{5j9uf?8dUyU-trdw_y7Li zaoJ`2|9WH~>;!ySQNRHO&Cx*0v?W+Gzmw+7Agxsqt1q*z3@5K0m}hHLEHe_Q+HqvJ>={h zqUI<`DL9c&eDC|<9uJO;4$S9DcZ3pUVc;ZmQ~lqX#4;V?s>lhO$s;~b10s-c3qZwh zgq)M9zNDx<4e&L$-HN+k{~Fv$xb;o1$8A6U23-5vSKy{Myaq3O?W=I>8(xj;?^=uM z0C$^Z2fc83a45vg3^E3eG~{|+lw%78y)QF^***|mT9`6=3YFI8L)Dd*qET9O7Nog3 z-9U%C_-z|Esmh#$bI&~&pZUyZf~TWDDbn4#6s!IgSYy&y^(R4^3wcE<6DYp~y*ww7 za#kp%t2&x1wULr8<7HZT{h)lc6HbLCDBTajD^PvWr}>kj6qId5gZk4vDAY?+!l8IS z2!}vZ8UulTMx5U5P;6wU_WR#}CcL$wu+ zN|%d5__cnN7Cq`)V^Js&{Y#cC!RufD`e4X^`Imng3l=O;^^*d!Y23X)I>1PQ#w0!B z%>g_qk;72%l)^JfUjdE=DdWka#wK3n!D#0*`o&3qwllQ$?g6bXF@kLhgnn37S-1cd z8rx}}_IYl$#g9UBp2=Ib(8kjVQ9qF5M36xh04xV!G}0Zk=*bgr0;<-W#yw+>p~1qv z)T`OT5nyxxs5k`m95w}{g19Gk??(6Z%s85Y%&!UA|{^V`E1sSk5Gv zjlyv7$B2L>VNC3=tY%imKvuI3%UEsBd^ojphL)oyBzH1k>^OSdZDI+anEl$-t{iL z^PTU6!ZKgK==IP;4~06)f5$uCffAH{@WBT|8-@L#IzRCfKN0XNJ{#Wt_P3)1wNt+e z1^sp3_rCXqUlkMG0?{Q+$d%50X!WcfRYLcxMkD zeCLCBkou3z`CjT|=cX1B-;oa|fH#8@L2ifMmQdX3shEu z>Z*p!6pmi{t13DPYLJ3MC3X^>S1GKp-aQ%iGzW4c0p zG_K9RJn(|Z0OEG&FdxH17+Jm)yW7+7LxbpWmyofJ=N(C7Y9i=k^gU`V{Uwkt6J)yK zmsd{EQMU9cXlae+I7?EDv!8*bOM!X?Iq??KsifVgcXix8xqBzNe9uWO!jqHof^=BV zm^*f81R3>EfnOQNr+SR?!vw!y>|?ADaFMrWMt#j3_JcX}ytI+bA%YJ^%J}X*yszGa zoV&w;Yem?w>4~KRi;l}7=AO9FW_KA-pgp7Zj z@lSm6llbJPK8a8M!l&@5U-*SXz^Cv@*7^7+KY`GO@lP-=P+A~*N*X@K`S}RxRi0@1 zFykL#|DWu&6FWDsJgTljwNt2k)luEDT^Y`vBh?kCuG;*E z|L`BeufOSkOj8@-D?{}oP(PZ#4}S22;pd0-6U5q3=m%)@qcK{ib7Jurs1pz#8SYAw zAg3Yj=*XO&cGV@2f!2L_V`>ums~qDUxKSB87|aAzI95P9PrtNTqYl}#bt}+p0>lOC z4(XrFrQlr>2G*=VHav*EJWy{_4^qK^h|o3c2I51DDxEWhgtc;w{6=tY@_lPY-PB0%NFRD`4r9o^Hr|8 z+g1M{AY3Ia+qZ3p{%g?&uX;{Am(R2wE$A4@mQkVkB!Q=Xl3r|6SG70?jj3q}+BEV( z_faKDKbRRz8Prt42vg5dLC~yHZ|U6+${py*gE}LpQO~GzGIPM9#TZ+?3cKk*Ota6N z4n%{xEUi``eFPd>N3R-?X4HJ-)S@|cX%P&i=rj+a%>ty{C=|Izqm`pwcr0DH8ubN> zp#Lx_qf_Om!%X>=%CiH}RW-UjFC%>ZxuC$}jN< z*Z=#QzlmS}wNK+qU-}ZtwRCbge){(+1Jkhrk}ZLb)1?PNLrCiiUA48i<_jLPd$L1% z!ZGaXm@F7WCIM$Kv!F+E8qQ&!>TQ2+JwU^byiHxllRfI7HtXo6wfX0qkJ{oT=%jT_ zQEz48Z6=R`M$e?XSeInM(Woa>fxZAdHwL<2S3IS@@>Fa_$OuzB323p;v8Br~ynF?a zR*}%^r^MiBxIsPIp-$UFng)ow!mEXZClCn=7~?t(0Ci~2GNOY3>>GNF1fXC{A%nh8 zw;nS>9ftgv8T6MH=snW0y(oEzDZo)lQ-6C_EVSmnmLCSyyTOaEhSJ>krk3#?TLCxyl5RL;WDo1+Ok0Jmi@>pQ6e2u-CKA{4oq)dJ!--MxAO%(i%MblcNLDJ^8{$ zbawBCenVcH1ihiJF;d779-cOEivk(r@!54q zSWkvGC%&8o1;c=c#CA6su8WKLtQz8G7ETOUo$D;4umU<0fpgE9SLG$Sy6%VL7ct;3McrQ<75|^WeoVWysYJa%0vW@Bp%Jl3| zH1@;6%3D;xq0Wh7?it#T8P|9vg;Acw0yBf;%rk^^4#7#h2p$G+4vso30Mlj$Jq0~_ z+Fa1TKs`-RVSd`2#+L7X2WU*gs26L_Q)eY8Totes11nZz%@tRpK7SFmO*ByO`f(}) z_Y0J5B*=3|031UZ@6^F;?afn9{R=Q9pEr`Meu>oRmj4$lD!wCZrs zrwF-WjWXuQC!KmI)bChmvyj&7a6GYP@tpaPTXTk%qa>t2i$_76vzhh<1?<|IT8^%cgaLL#IfE4B~1^h*eJvf#ak zJg$Uc&ik=R?%eeP9pZCRIACTlvy;;IiR{$O!Z^+BM0R^-_C+371_#mP2FfL#e0LDn zOEn=KS;osSFp5SF(jOs|E@4UyS(uo^o*mn$fl=goO2qq1gH-H z39lcQF2VAvug2)=)fo2)8r)p8S=OX+Z}G&mQ>~*-1K1$mDeB823^jBm*@xcw%a41IF9|SQ&!Q5~54MZn#rs_aq-P&wh!JTW$(u)b)3_!YN@N8ykbdQ0WAH z#cs}A4rm>nxuZXEBOji>0McJFG;KNyU5((R9#LvN>5h^j>5?)|721nZ-vqrweMV2V z;vGHO7OK2I-}%f_Xsv&a=>m?|hdEnxoS~Dj&0rl^vkD7eegl?VeFfavXJaGVZ>00G znc+4X@trh)JLvH2qMjQc8o+uwMbpEB7(8bUmS1@p#;&{+Sh*az{+GylifJ14god-8 zRKtlui#ieu7hu&Dm%uL^!}i8BbWC3x8O0Q@JY{%O-noyD?+N-%M!W>^r5vw#ARzg( zKH`|5n=L&oov)OU4|32tbkaIJzDS0K$!3mQg>wYv7Bxr7lo^K8C<;ZHE+}Z4KuxG7 zQ)T_2301zPuUiknV3u_xtTM1l%MeOfP`Dr{Q&ZF7?OjP(M~2#1i~XxjfdU;)IAAa{ zC{GHl>;rsU>fyPI9^bkZJ2q{C-U@9~P;@UdIW>i>lk-$wlp!oeHaWy6?;7?)l$P0! z3(0%#Dw!c#w0UT8F)?h?Ha&^4iib_?!E@jGCa`-KK+idEwu1BGdAbPdvm$Q+^XM#G zc{!F`bpr_DZxzhS1>A_fFDLp@A)Y1^Vle!TJzD zy=-JbPVXrP5XMRU%_u*v4;Y>G$vJkY9XBE>vc$tthXy+k^mKyiqJAz0@kMtfVqqTIEK*SOlGVWz<;A33!KU}iA0LlP|+I%MG~RG@JP zP9c&{X;N)qF#NC)EM5Qr5CBO;K~&9lMnk0ae&ApvbB3ZPdoo->r$`4%2XQly6N(;~ z8Jf)o@6sKLRs+>e1IgZ<*!r#SptE%wQX03EN76Yx>C7@rQ6V)MqFO;tgJ(Q`AHC!< zth)IYT=l>9+$lGRXFF)yRiJ0TTr|B65#9=zzC1+c@heG*J)Zq%~z0;__R}m zJA6k6C#TL8UAj`pcogr>UW#+q-hyo$(s(6BgZJpI92guJ1@zW?<~Rz>I7BQ$7_T`L zED^AagMY{m)s_C%)vcLz+p?YKu{%g>eIX6{!CRlS+|$CKn~~Wxx&=X;G&2RrnbxF) z#H=sM-Aqp2ixs`F3<{#rZcz)v(GX5gHL!Pl9J}_8Lp#MEKK>Ymy@{0Gw*Jn$Ljx&> zdiI~NJ}B%8jp9RMKy=(D5<7RC&I7IHG&XJCj0$&{8I5_1^zPif8|G7Z?@^A2E%y7A z^!8_J1EF;PxPTm@+swE*=pbw)iVQkB8sbiVXn0snBAg@+m<5TL>HSdiJyYQnjhO8} z&Qo+4rv%xax+EEvmn#>+AwLZ7rAMUW4mGgc95Pj61uw-$eKkbAHsUB^e|0NN|C1Nq;z~N zI}JM~3WAP@as!39i@j8k%IoI5lyADwRH!bqrk+}B&uU0xcw~;;7vdMe!S&h zy`O$>fejlrP%I27?~o)a2G-_|)iW2|RVs8urhKq0Z#TiJa9k`p8v4Nxet^qgeiPpI z^B=$i|K_K0`vX6QjKZrU@j4f$#vmZp(4XS{fERhXJ4_D76>waPf(|zxO&+(WmCB2> zj>RPhjz{Rd4`?-?A#xgiX>28&hQph4L(Hj+zxnXk>?Jf#4}&}2TVV`4%jme*XqDiR~9tp zjs`dJRkYgFeDsuIG_X!k1$+&iqJk##r*e-596DBkehsco93UwbIyDvNgJUy2Jpphm zm1-R*3}Bst2G*x_bP^Ba{rkDsTno>QOozBq-nTavgzdOp4)cLXMc5rwIV!RlR-UI~PMZt+g z07^nP%RU2uBh6QB)@cqAToDITlahghC!s)rSUW@W#lA z=YUyn(hkvekmo~`ohsQHgTUC0K5607X$(16YPAFW)bV1nnkuK?` zy0KD^$f(2eU{G~$Z02FqGi_cII(oo$>e+cbnXK>KjTgT8zp?e7d9S{0D=;~Qv^j-p zs|nw3ph85f3Oxmn&-1LHW5QGdNIlk57hbLdouC@^QauOU)HE7TJ&niz?rU&6cc9A6 z1RM+6Q|J(PPC6>Cf);V1N)JCbxMj<6&ehkTGcbgmtu`w27C>*&7ePM)`Vkw)odU^$ z9^nXMsWgWN5_ zb0`UqVR(1qlL~SQPldZeO=OT~PL+(E02FRWJUOGBPabW9k0w$8Xo4%OBQV-jdCD!; zSg_)3es@2{$-ViG+wj<M;cJn{hr!E>J)YLPauUdH=%m}j>JLTp zC!fHIi!Q?aB}*{#m|=9mB1}&;k?zV69RhsQKqCpoYP9Av5fO;>A0#X`g1~XGu0JDAZkZ}rrnHe-roeIgY zBR*FA$hfB$#b_IG~=|Jb8g|JQ#7w`V7iPhq;l zwlxRP8EI3e)qKizatK3TjNpl-(;d)yqO=cvdT zTdCStKcirA7oSZl-h?0}VZxp?dbHd3&7tDeZRh|I7$GH0wq}(Lvcv^QT z+qZ4+m3D(gG{j4nF2fJM^9aCxtjgmgV;LtpYqdaWV?sd=gnUCz;pyW84T=q-p?ptPVIBYR~D`=u}%A!}t^$OY0g zMUqxAFfz=rq9zee5(myC181fMaFQ5(hILyX8$)&B0yK3r&9!ed%Eq0&c|&-?i%Nta zNd9zk7j&d}L_?*Z3)CvqMUY}+M$QdD31-F=pcmrWyLModdUhGT)#2#|c0TqPo~1F~ z^0lvF&$qq}Y~BRy*a}RH!&=iwxI3ui9aLz@(?$c>y$kvJ_1ON;-@s1vKy*&R&tE zczU|E(?q*gMS~{_+Auqw092iW=YSm>cBqTNEe3ja0li0hHAHE^#Utk&`=Wg*KyDb^ z;1KG|mLc?ux%IfYMb6Ptv+V4%P@@5q7cjuEO2ev2NN9{-45OKGUX0Z^TbwRNph+yl zGM@SbkA9m18iZV>fcm)gj@$9QN4|sh!~}8*X`4bMqw13sk`-ET=uW9YVQzD`*rsqL zJZ695(H~;jq9r)H&+8Y~R-=h$AA14`g<1HOCop{-1;{%}(=^bkvFHd%M`%g4f`mKW zqd*y(93u{BK8_Kp!=j0WXBG#HYr96h(xE;x^PmZX@f$KwJw-y-0-pPQyvSo_Fgp;` zOq+s%$^a_72Tz+B>K$Mt^B8E*+ugJsc?Oi_KsD8|?VEB?>pZpaz{@GvQi7)*Lp8j9|3*(PJg>?H)jAg()>Z_sDBcZ-DIz|oVZ~fsD=&XAl zl~#@+RXqhzT+6aJ!QEkjK!Urw1qgwl!3h$A2KU7mw?%^6hRxy-BuH?V;2PZBT@v&! z_rCk?`!!W(Yftse^t86z|978Q-mi~5DZI-?Nap5$5;Xn?w#k*w$RQ19e+(Nhmy z)o1e6l#>yy5=4L739v)P0XpEK0%4UAwAGiCl)MgsycWE9;^p3xi>SApTi~y};)9>- zubo}vav2J&t?jT|By$o8RB=UA5tE!#=}BsrnwTkbq&V_epP~AhWWd8nuuYSDW(O-` z8%JUi=X7xfbW5edep2o4^VZR1g9x!Jv89e(;ejG^4OD}NFAzCC zC~UMyxph%5cI$PHLRdQ0N_2fno?|DTbuC}#h z*QeD~j`^m?l=IKRarBS}u(}B@$Qj~-tAVc53(Ojx81h}m+OhKj{5j`pbDWF$IH1Fx zO8`-e^DCX`K~Uo)T1sGwAsZZtnC3GY^f}$aGOT={aw`;c4Au}a3|G9Oj;YLQ!Sn5g z9pbzNE?$blw=LR5bd5vZVhVmtHm@%@k;}y^2nJ_S?smu65s;%7m!KDb@Ojsv;$Uy# zsA(*qQgT5X>fGdX@OGB6Uq(gu!mX3AYg{2i9^B8PyB%wzF6HwYYVEAM-CS@-`YMke zQ(6Y$SfOH>&v169u6vNV)XotXH!O=V-c^(8qQlc+@w>@wNaN}`S2N1;UC%W1i(Ck{ zB$=v=j6wz-EHF}%;wA~LRkLULH;;AW<&CPX1!3$ni^cuQ)vP;k?m>X z5+TZ?zFLd@^a~Y$awCGqCl`$sIIX6q01~P)UL?=L#!bt{y^|8(wk$92oQ}=wjY5WB zDL+O@C7&23HWK5_1>zdd85vB=H|E>Rl-nhsUgP0QbEhvrv>y$%RsU7(g|hUrLuV|1 zb;8{|+OL*J&$+NFk(GDSx^7<{8F{KBV&9a1X!WHhbS|w+eX66vg8b{ch6PnBap30b zh-D!I@;pVz(M;&!@~vcrnZ)O&P+8ACAQ8>l5JH-o^`us{o4Yz~m`N>R2`5bB%MWs& zOd7Y(n4k9$vaVM}CkErwVSn-=BN%(15hQsxP;aMudeicshpMqzYXsn(ztYopB@iZY zO(GaE#alQ|mQyZmwWK{NBiXn%~b6$x?J3p06YFD8v(zs2^LZi^LzAy8xEL(%E$@#U&ka-_$uYxkS8R8rLk~kFtl%s4{6b zPHqWqfr_(B8k=MB+Z5C^2}!-1?|7JZ%&dmc&UBDtrxO77SJ|Cofc5+9{un-Ar}7IB!;DY@BNJv_d?`54;l&Y%|(vb{mUH8GD;ER<%> z#lLeHi&%z~RfDO_*+gz`Ro?M2?4Lv&;JlMbh^l&XY zS|+@dt*h9p$15aN5Gq6VX{3JR`N3QjdMF>cC(t_qtXdRhY1-OufcQ3xVxNe6KOuqa zx|;W19xZxyuPX$`XXq%%`y_JXQZhdr}I85#AFrRW`39>(Pb z_+X?0W0&-EY#zof^s4Px)`&!$;NIaHH-5ivLB$c!n0AReyI~k9wR;?_fnn6}OFEY4 zM%^zR_1Xg!Au~5p%`2JtH?RfFob`Rs8`NN1nA<dq$vp{8bWVo2)z*~t9O>d zETgAcqk2bwo7omnnEw;#yJVJ`6}D8kTs#>Z3-ImN8j^7!q|7vFo9gwC81C6F#N%Tu zI=ujGW#MX&NQ3P!hlx7y=5yQj1kwWfy3-iTY>3nHRmu^{QLE}hf7PN$%mhe5@VDXuSYrgfPal_{3j~y=N zD+Q>X%j#Qa>~rfuwuQhX_YYn!!gPN`MI^rbHXg!d%432+_@IjAjT`49iV9o}$Z<_? z<@(JD z<9I0qFFxns2$U2b9Tz|>=a4b7W$?!Ger(w>jkp3n6Um3~v-P$rnh7{RV zNFw&qpH`8u%Z*UUPd_+FIyiiG-*}hzi*>mE;sd`|^~CCiuC2D}tL<(ACD!)z{a@_D zx|Tg6e8P|)Khw5}Nf+~kr-mXQ(-mpu{~Ro}Ff3&IP+F~j__JMp&k)KIUTLpifc>~z z{>b$Gl!ds7$W~2=yX!V9NI_?laE=M^2S64|-&A2ndc#DIA0dl~d;a?Sb9=R+h9&jh{$!;0}9T$t-ZH3ISyn} zL{vma*n6Mfi$5*JD``4fu`@D<$i`PfVkwtQ)O%DxjY8ste+~o3!}GzyfqL)-0+c%( zcekHnFWiZj5ns5ZjXreUCdj-wt9olvH*{SvMDbjEiqi7SuTu>1b8rAsVQ}QLWF2&t z{qL+nKg`jX+aGw;!wX;n!xIy>&0(gavyKMjgr^~gxlAw0jsN6!Z{sfIjYgjyw##4} z`|=p&1=Zix)vGKdjC;(2r_D{>04~BRW7b>5q{Ga@R_HlX;dgMCK9`^;*1Gw&G$}gU*L#!gr7T)&pQ70^ltBDpjUQKTz+PkDy%_ zw-9CY7T9bks)|RN%b%#(R{4$J; zvn$;FnIS>nQDU z`T2*_2akK_8Z86A=&}hK&HJH?ZZfD6o-0>e?|WIYX$njLvZ}yUHZA~%_KdD&G8lVv zRJUbSHHi;Ya=)5vb|H1p{Zj)wLk9!Yh^pCJ|HA4j6+ssG{Iva(}X< zQ{4VyzIMH+{2n>VeIH>@%UWd!ms$-Cb8lG|mnfSYleW#rV^`aebLT8ZHxo4TH4wPf zcfyxsM@%vE1FO2Wp1_s^p1sjmVC!amOBAFiyZpUsM8WTY*>(Y(PH`b?fG9}}@DHzt zWie9*x^yaGjmh~dAu9)(N20=|QEw6RftBqlvPQLrg(eZ({A)%AbG zgNGj6*!!OTc$B)ECG#f>cw`EQ1+r6RO5xdLbZF^GNZj-+od)W9o)0bhBz)&`#}&K>y2;z|)Rqv!$ugAW$A{y`2W$wJ|7kS- z-O=%bLtBxTzM_4|y4vG~+UX`&0L6sgG)Do`HawBQlGW^Y3#^v2G!|5YrLKxx+!QOp;}YLb6G>RAcH z@s(*j>4^49Z9(z(LZKliq`WpVt3ldrgXL-2i@oFHz+)z^rXX|6GKa_o7i5a>ZfDoa z$w(wAw-UIBzHj)V$`_7Fg-O_rj9`Pt_-?9YM>AE+vxX*KU+BHrAN7JZJqEe&7EHB| zfd%>dQ)5d)h@TJ-(byf&e>Wp@@^2Ul!P2sVU<5)AyluUS01B_&@EEu6pNOf6VRl%= zCqLP=Resr$*RNsjUF*dF`7kz0w&-{k{WOt0pM)QvF2=YZ#K!sLNuPAl`u1L|GO+S%cb%v8oP?C84UBf4Cd?06H7Yawfjc63%RW_ZLMv^PtaK{X zu9Z%h#0j-4_eQEY4kt7AqF>?M$J&OUkV5voZd}H3aeX-`Q)3V+Ek0dGyP5n8{&ffN zDi=T1z9Zo37CYUk--ZNByF#na1QgdQ_lk$ijf6V#>dxN1RDWNi!j4!nmP28Kz?-kuP;*ss^pa9~ZcJmont_ za2tmpR*U$JC5I={G?}Sq%=gUsVB_ZU8=7q_F-m!}^yhcdIGDTotB&WzI@K??R)OEs z8;RFTK_qNEDhQWNpIs>yj9wmDTZ4RBXGAzqEQ8LZ(2J%8ONbA|`WYqg&ap+YU} z^Kqnsa*O>SW%ZcnWE_~kMnbrNVF3@@0e}a^ri287$$fWgp|WgX zsHfQ)I5q^epH1eDwSBN7E5#<%60Pc9=8r9xktj%`uzD$cG{1jPUGl3OnkrQ{@39+> zfWoOh9UxMOvcyYkICSkrgd@@~0X}9En;NYJJ6hTy_CaLtxb&gHf9-!-8m zV|7V|_UlSiDmjDJo;iC_?+PzV{^%N6bd=OhRc$F6H#K=~W|ysu6I*?I zAB|RiC)zBcRF8XOx21uzs8#QQ$iFa!+)V)B3zh?Hq4O>ed$0#q+L3Osvpo|v z#;c`TWU}UTpj2nZvG&=82(Kk)@DF5?%a`=#-V7a_#ky8;2+BB!v( zW|!hs4fiqS7IEAZMi0G`Qg=!mwX;fl9-vUxLRs@7`qxHMU>i&;XqX0a`ihK((P5D9XJ95p{>zu#m7dfjl&*@aD|fKjGzErZIyH$6#GtU5??{P6 ziNc?TSZkNB$I3h2zEy$tUuhoExEKd~vau|z57A6wc;XSPJlMH%gqs;n7k2k1Ip$SyL8R`9nh29j&P+~c5hOFr(aZpY?4!`DVm1m5BWUbljgAwg6bVF=BL~K#nw>YnHp(J0 z>16Vz1*XYMsi%l15i%KVAw~+VD61SMxp|)J>O}MwIfICfW(U(vZz?p#SteHJGap1Q zpoCN0)WY24WfwQ`MV{EZ4xBIaB_eK7g0}p_Z1pWE<129o>0NgURC3^#3SO+-ZQmyY zvv8A`xsU0NjRN+Uw%+?N4K$o7LijW7tD}%=T&GPB?#>Yzpuz$Wt?+S%6)Qh4a@}Qj zu`|Z@miLfgl4sI?RyhgK{rW|ds?^KOJy^gU*ukB0uYqb`$SB>r4JznwCq)}X}IvZv!?Yzbz`X1Yc>b$b`Vdsw(B zLSn6@6LE^}H~J;j8;b5Ex`o#~ucEPi0v0EDIA=)%suOr&Dw@u=k{bfi=xd4?#Y})m zJWB;<0ePtSFAcq*@nVyp@u2Tb*uUc9t#OHqTl$H0{f0tSmtWSI=`PveY!qQ9i9J3y z^}^LM!rHZ|@Wb5*en<4$nkz7F}ILs+!2k2p3Ov*V;LH5d~#1P@oc^MtH-&`e>ea~GiicihI748kJ)-^<5 zBX4yyzR@okg1LoLh`a(Bd8ZTY?bJ`ZqIEudcihgy{%wExyjkT98Lq;y{4 zlyI;CSZqE8zMd$n%V}+DwSP=|r>LHi3hgQOegVi6U^3v#z^mb@;ub0{sO}%Q*^#iE zil#qN$Eb3Eqz|3Y`o*0TNrkS}oUqzYW&3n%=eP9q^mN=^2}p6kddxSf9GgkRQrUaG zED%z#={7OUN@iERaE1$mt#{Z?oM`sqsdro`;wzJT+2hBw4b0TDOyz?}o_Y6=MP*)) zo-z-nlM?4RAWQ5~@2Csu7N)W(e3NH5&{u={Sg>U|CaFe>vRH1BP?e6kApYgTllBZQNCK3nj$o0zUL31&oAJga?Y(0H2{Jv z$RKgbUW1lX%MEyAHk2eLoQ(&(Y5LqNl=;LB#Et1P{YERzUwB^H!o1Og>6pYDw3sPa z+6QH6EvQzRoiSU_hOqmE_QRq|V*7`%H_a^(Q`3|6L4tf(fBM;PwV4e7{F?_n7*PT`ag*Zd4^Kvm>f0~2*sf9jt>I8`rdT^I zw|#=^wGP@o_a0w!>HO* za}2OP=#!>tw7DZ&@?Zk z;s*o!#c2@Jg?`?m$;C4?XeoVSDMr?w`UW*9ar!Ysg0vX=hMqjsEk`gS2y&N?GXfJ3 zz)>TZZ?UI}n@2aZME?%fw+GzsBW|2feyMPLuz$t_#0(jo040@Mw>e-=T^*cgDZyzTDev zvVDVp%4i$>u_W!ubxt<5l(B@1fYy{QGd1QAd$mB7y2+pW9RHh%jsWf!7B!3F5<#R> zc{7YRC9(QHxGn%=P!A-&{mtj2u$wvNWc8wVIf{ypNN@#zAW7wEO$O}mFbm!G3(HAQ z2Pr!?A%f+xc$7$M`+9dhuymB-vGGi!m_EN9$Z6$CMchgjys-M94dBX84_3u-Rd*B( zR7w(ME!gBhjPKdwO`7G)1o3h%7SvDqW>5^48m2Gzn{!VnoX*mT!wvKIri_!A(q5pf zUl=cQqAh}uLRq;-^!f(l6Mq}{J;Ncd<&$u`|3$vFC=!}=sMd^Eus+Ff^FnJ7L-e?R zz(Dwl7#;ae>-!ec&z*d2M^mZT?a+3GF*;#Ce} zCp>)c!wQyy!CLO9wruJ?eYw*2mvZR^>TcKYr}M>js&g_{h}t`5;v`@cn~7;{oFpHX zIbT)!X)zwisl*S%!oYk~uirWSuoGRf*pnL{u!-e~0T0NWT6jjR3pvrXUZ^S3G6c(b zZeK6B;u$}jrJ@6>8u|A4eiFe?IF-oZ z6&AZcj>?IjhDqyJ$+%kvJ3UJ(2Qs%0nofm&S6PKh`)!tT1rnC-JW~k5LG|NPAP+)o z+5xSV5=zFZrdJUIHG2VjQPBOe?mITGV#Qm0)~p~C%14&hSISKKSbtJ$Wosk|&)8|voDlG3lM|WsYKdVQyr*v)Z$``+6-Q*LI1nIyqPU;Hx2t_;G zCwKqgobLGaeSVQPi6wZErQM2huX8*3TUeZ(+;wr)tLKHUX~97h%OHX!B&*V|t+*Hv zi2Ax7Arnl>S|fT9t&-d>!`SI=1e~5bDRHvwD9x~X`O|s;*=GkDeiG~1g#6@*a(=wO zUKa$2EID=JsLu`wEyoZVUwuyv#gV31av9)&mP)-ds_-~8Snyg0L;Yusd&~rrEQ-r< z!d8aGj=N|)7ZAHiFkdA~UlLD@;?e7EzE*er3t`1)gzZ9WBhav6M< z%(>4-{NQhl@kRP_GQ2;Tv=AbFF<_eF1W!&U=QRD^b10-(H)swsqy!~zz~xllIkbZV z5*ZLQ>wK!4;|p3VF1X5gg!@OndCku+h3%KO0x*PhthV+L&{EjDgA5%yFYe%JdsIg^ zil8GjXsp^F-GXwF-L1-g49`oV(-{0z>8BIp0b`c#$V~I0Pb$dYdPa{NCZ z{d%cvYH6mmQ-~2sT1C4`ichl3?KTJ<8UpsH*C{=}VCrTm@5QG10L?GpnI=b()=ho$ z$U4`zlP<(J*!b|0z3GgV{Brj|@>*@=Fe!6>gNADF;`3a|@*fXu7p4XuZ^|;A?sp}j zw#{h31tc{PGwMJSmSWo8d&RT4)l3R%R3>)-u#xC!I1`N4EP0= zb5zgt>BU-71#h`^zPo`z_3~->1#OyHK1cO+TN$5%=u_xFS7zArf8l-& zEoM{qm-^|Hl;gdp9HvPp=X+Q)E$g)CJ`F{oAOrPltMzDJ6g4}g{w6L~1D&B-&~$5a zs@G$G!PbXw!|}QxB`4>I!q@FNxHi+>z2JyS%@GZH5Z%-hzy-fuCmvCTPyW2W#)N<6 zcX1g75thT#|Eh(;=WyG3ytPbeFH{R7U+sXs>$3r_-Y62b4yBBAm4WnT=`icbk(Pa9 z6%M1AuLg=Wq7lPxRFD)ch0loA*Ve*_kUDf2E^)<5^{Di?>6NRxebUh$bN5xdokOO( zYpxHf#oHG!)H9Wf^;ytZL}VP~m;3}H~x+{hNE_HVMS<1KV-TLL~4q$h0=D}me#A4*0uX8lBU{=q@UuRdsV%$h_ zmHl?Ds)=-7i=l!Wu@GYOP{YwSa|Ij`Ntc|-wp@d)l)iGRiQW~W)X|c(7ft%xojz~c zYX1T2@Hrw4eX-j7BgQqfr`)(iCTx+J#gbIq4I?RiERcyA^=*%#r!!%`poIB-xx785 zL$v3#Wtf@weQeLesiU7yn1D#!;TPYH+Y@~mSazkL9OW{LG2*ikm2SCLF;_E+I1`n(GMB}-dyj%VH{?e^BfUZYX|?f6woWx+mr zb5#<6tYyXE82uZhikAkQ@(kb1y-#^3jXn4jI9s0OaHua%ATI23M=(%yu2qfnAWQu* z&OKL1VB#d-A4}k2l#~ZwuPliWFN}=^okN=1>pfPd=P$N7M7>ih_~$q%Eo#5%u9lFf zxEpXEBbNytXN%+fKH3&EU9TFE9ntCW{ANfCj|=X-B%IvUAz}dsgdugLXF}zU4Y@Yb zDF(4~(2q zkh!JBTw%w5T?qV&oqc&hdrmII2mcBWlYnhXHu24MxU=Kd1Y~C1s^plMG_kdgEB1M!+9|2`2v7VD zU%_VK69a5#)G3H?Zf()a&y<^dEAq7HBy;`)Nc<8L#{z8JB%5ckkl7Ue#o@;){G@GV z6UwN@&oEX2evhLb&&R7{p2|;TEmw*GF&~OSswM5WMXVVM_bAu7L!`5_r&42XvewRud4IVqEf}OhL!DsCMC;`G11b_JndMdE3K#_0_ z%0`QF-xsymcxFKgHQ8bx#S==IYEC++t&@jTbja^;5kwiQv+%uK@h^xpD4jPe>yZRm zkV3j-T5_%Ou<~4o3aMtp1qojei&JoTz0p@Mu$=6!7o}q<{{o0z~qzX*&#G`nNA6TSWGKxI-0Bga?WV@giBziCQ9bIk1sQa zPF{*Jr%mX`UP;qwUE$4KHnDE`dE&wWjpLJ`>1=@T{jE@Ah|c zk+~_au29sNGbuiIcvfb@-mDct)mEONx@)U4vA|+K`*)Qp0$(J_qvE(z9OEemJ6Jl! zZuN^1Pevn|8>tt)EIcP~wj}XB0C1j9Rse=_gPJF&sdnw&8hZhT{U@j@E^hYY)rHpi z{T7s{rpOM+xIjHQjwx~ZzOX759={(@;IL6A?ss1ixtB>1L(Vu_ z1u9S&wS>0A3SPQkt|3sCE;wPN7<=#>`QK(bFIl7_bb)^VN8QYEg++<6IP0;ak6Q7> zwz%4iDV0u$tK_4N>WJS0dWCj>?&z}2Pkx~x=M@#&qDE1d7=MTVraWsbJ??2Gu&`_e z@K^EP=3E*y1>23Y9Xlbf0;?Tzi{!gSmJnao)z3)s235{G_RjuT44Z5ELr0i394D5I zey!PKNi2T#QH_WeBm@253hI_X7fgj z;!uuePi#9u>)4{2TV#G4y^zJ=y(o+2 zEg89U1JbIzShvJ!IsvV_$^PgUxIyZ`1H5Ixd9aCar;4+PO zUr-R55t>j=K@w%$CJ|CjA~eB6u&BQtuI&Ao!{Z7njKGuHA`J^Q-u zVD8h&R=^+srX#=O?k0hfu~S@oz;3n8sJlwpvOnZ&!SuUGWYHCWK4oG%cgd}&XH?PoYj&A}F|;2Uh}iNKtHrQv>*)JkMe4hs_`{pc zBVtk~Rdu&G<(*BTScrUGOfGcrvhvZXt?)Wbr>txC8vf;Ea&1oD0^~UBR_2xumKvJq z)|pzZu|NcFe~k+VV_qTKaD%WtrIL~dV{C`%%*$N(u;ioI)YQ}D?Ct3D!xeaj!9AlA zp60)(mLo!SjZme8pFM9&zpCT2Z{xCP!ibBTGIGH%{xj^kX6bz}P~Lz<12{ae_uy`C zJhe>GGUbqNOb)$u8GXIaaba77IRch>LoIiSh@Gp=sG^KtQ!0Bp zbSd;<)vtVm;9BA*X9Kwp83)`YTXmebEq+*Rt&d8hoItSCfgBn>poPRm;rbHT(C3Gs zl8 zDq4)O$FjXY1?2;a!MWOWhvbChS+1{{onjT`S2#U0dar%pi4u1Bd3LqjdbZ5k^HSHA z!T}w~k2jBPbGogRSg9PrCk&Da$WO&J0eNdBT#?&j?1k|DRb#~s7|--irayJ?^+Nd6 zrmnf|W__B0n;<3f`Pl0);48@pReC({vyxcyxJYuE75u0OX>2n%&-9+<4@b0PKwHAy80JFxy5Pmxads@vLcn!Q0YKs{Qu7 zPX~*LJ(Jl*rD8;(x&QqptC7dN!NOHr+$t#GG|}rY*s*snn)8*tDT1lkKVtlD6~R3P zR;3Aj$W%14DM8Gz)?^$yrab=+ z`q@T>2&6-_)*7*_W%Fgz9@A3Hm)|R`?Q*RbEZ!$l(YId5{=JRMk^9RRXjwkJ2JCfb zyzGsu21Z`T@9XYGwsgn0aKKbe4^_N?X1VNOf5 zwU2t_BKYv))bA9C1`uzr_QvsFVrEq)H8&l46Jz8{-&59rbZ+x=+r*P&%Orqi%fyER z9u!M>&e@0!+cpVouhK;b4(2vi%230{5jMVvM7x*QcT2;(=+C|;CkNmvu9tAtlapz2 zmm4&aPA|LS9RxA2e(tzl6$oIpC{S>5b{_KZ4eKS*nfI?>Syh#pK&{RgE%hq z=U0DQep+d8z%Lz%WJ+;=&EZddF~ghm?u#T>z@;|9eRc4+KJ+F(wWxcgu<`f*rzca` zQ)P0=USs(B_fMOAkf)cY&+#dq@cRo#Q71aeiwQH*b@Km#(+YfoLrNr8iurHPUOezb zC=VZ~qc)$K?@dJ}@Od)2cvj(<_lAH8l>Rcp{xZb+o~Xu@`dE4WG?4WHP=tibO3V|W z)!@5ckivfmkv058GdIYhaP7Zvrnt^)S%)({S4>dbNg=>x({*G z!q4Ft`M)}dO8%EQTQAYS%6!Q@CoGEkd);fHj+jvsdjgz$YeTL6A0*q-e}b$>N4oUm z%wzut4hdda3PUCC{XZzex%KI(Zm9_6sr*0udm=pg6GrG3%7gzBNVoy%9seSE^)y7krijXa;Qk`gdV~b!#rn^M2+@D#;?)x*QTOhQ+P~Cw z-UvjFWw`nuFt`APIMI3UFog_NCjS369Y*80{`|$MC(b;TKsc5Sb@=rEc0#<}#^Nxl z=6s}h_AidH1W&Y3h>5ZO+lG32sy-1{3j5kz<6mrwI^cvW zFWjI2oHdfumW<;>|LPp^Q(fjX(#-$Sj|61JVK|m?Syq+u|6-oC4rigO!<*+a{|GZ& zoOk=4hBE>L!~Q{1xbumv6oRYHb^im`_oT2)(dU)R|I*w1Nv7iH`521-5&FLjkiZa_GvY;bO^{4MoxqAfiE zdbtX({SR>wpWdNxi+B*gY4P7S5yo;9S^i-Fye7`mSZuf>ouB=s#EHlRo*QjN?N4I{ z1Eb#k4+~SCSePPF$^HK{PUoo?J!jsvzpcu@SQttD`wq<0NJ{c5&!@I literal 0 HcmV?d00001 diff --git a/public/tunggal.png b/public/tunggal.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3eae631d89b11b81f5b521e2cfe5361e50b757 GIT binary patch literal 438264 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
- -

Dashboard

+{{-- ============================================================ + FILE: resources/views/admin/dashboard.blade.php +============================================================ --}} - -
+ + +
+ +

Wm-Vyl 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%0AbIpRk2&wiGp9|O#u--> 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 z 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�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 Mn*YEn@7hHC2R1v4QUCw| literal 0 HcmV?d00001 diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index 7ac7cb2..3c18dca 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -1,143 +1,422 @@ @extends('layouts.app') @section('content') -

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